Classe Visual (System.Windows.Media)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Classe Visual
Il presente articolo è stato tradotto manualmente. Per visualizzare questa pagina e contemporaneamente visualizzarne il contenuto in lingua inglese, passare alla visualizzazione semplificata.

Fornisce supporto per il rendering in WPF, che include hit test, trasformazione delle coordinate e calcoli relativi al riquadro.

Gerarchia di ereditarietà

System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Media.Visual
        System.Windows.Media.ContainerVisual
        System.Windows.Media.Media3D.Viewport3DVisual
        System.Windows.UIElement

Spazio dei nomi:  System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)
Sintassi

Visual Basic
Public MustInherit Class Visual _
	Inherits DependencyObject
C#
public abstract class Visual : DependencyObject
Visual C++
public ref class Visual abstract : public DependencyObject
F#
[<AbstractClass>]
type Visual =  
    class
        inherit DependencyObject
    end

Il tipo Visual espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo protetto Visual Fornisce l'inizializzazione di base per oggetti derivati dalla classe Visual.
In alto
Proprietà

  Nome Descrizione
Proprietà pubblica DependencyObjectType Ottiene la classe DependencyObjectType che include il tipo CLR di questa istanza.  (Ereditato da DependencyObject)
Proprietà pubblica Dispatcher Ottiene l'oggetto Dispatcher associato a DispatcherObject. (Ereditato da DispatcherObject)
Proprietà pubblica IsSealed Ottiene un valore che indica se l'istanza è attualmente sealed (di sola lettura). (Ereditato da DependencyObject)
Proprietà protetta. VisualBitmapEffect Obsoleta. Ottiene o imposta il valore di BitmapEffect per Visual.
Proprietà protetta. VisualBitmapEffectInput Obsoleta. Ottiene o imposta il valore di BitmapEffectInput per Visual.
Proprietà protetta. VisualBitmapScalingMode Ottiene o imposta l'oggetto BitmapScalingMode per l'oggetto Visual.
Proprietà protetta. VisualCacheMode Ottiene o imposta una rappresentazione memorizzata nella cache dell'oggetto Visual.
Proprietà protetta. VisualChildrenCount Ottiene il numero di elementi figlio per l’oggetto Visual.
Proprietà protetta. VisualClearTypeHint Ottiene o imposta l'oggetto ClearTypeHint che determina come viene reso ClearType nell'oggetto Visual.
Proprietà protetta. VisualClip Ottiene o imposta l'area di ridimensionamento dell'oggetto Visual specificato sotto forma di valore Geometry.
Proprietà protetta. VisualEdgeMode Ottiene o imposta la modalità di bordo dell’oggetto Visual sotto forma di valore EdgeMode.
Proprietà protetta. VisualEffect Ottiene o imposta l'effetto bitmap da applicare a Visual.
Proprietà protetta. VisualOffset Ottiene o imposta il valore di offset dell’oggetto visivo.
Proprietà protetta. VisualOpacity Ottiene o imposta l'opacità dell’oggetto Visual.
Proprietà protetta. VisualOpacityMask Ottiene o imposta il valore Brush che rappresenta la maschera di opacità dell’oggetto Visual.
Proprietà protetta. VisualParent Ottiene la struttura ad albero padre dell’oggetto visivo.
Proprietà protetta. VisualScrollableAreaClip Ottiene o imposta un'area scorrevole ritagliata per l'oggetto Visual.
Proprietà protetta. VisualTextHintingMode Ottiene o imposta il TextHintingMode del Visual.
Proprietà protetta. VisualTextRenderingMode Ottiene o imposta il TextRenderingMode del Visual.
Proprietà protetta. VisualTransform Ottiene o imposta il valore di Transform per l'oggetto Visual.
Proprietà protetta. VisualXSnappingGuidelines Ottiene o imposta l’insieme di linee guida della coordinata x (verticale).
Proprietà protetta. VisualYSnappingGuidelines Ottiene o imposta l’insieme di linee guida della coordinata y (orizzontale).
In alto
Metodi

  Nome Descrizione
Metodo protetto AddVisualChild Definisce la relazione padre-figlio tra due elementi visivi.
Metodo pubblico CheckAccess Determina se il thread chiamante ha accesso a DispatcherObject. (Ereditato da DispatcherObject)
Metodo pubblico ClearValue(DependencyProperty) Cancella il valore locale di una proprietà. La proprietà da cancellare è indicata da un identificatore DependencyProperty. (Ereditato da DependencyObject)
Metodo pubblico ClearValue(DependencyPropertyKey) Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare è indicata da un identificatore DependencyPropertyKey. (Ereditato da DependencyObject)
Metodo pubblico CoerceValue Assegna il valore della proprietà di dipendenza specificata. Questa operazione viene eseguita richiamando qualsiasi funzione CoerceValueCallback specificata nei metadati della proprietà di dipendenza, esistente nell'oggetto DependencyObject chiamante. (Ereditato da DependencyObject)
Metodo pubblico Equals Determina se l'oggetto DependencyObject specificato equivale all'oggetto DependencyObject corrente. (Ereditato da DependencyObject)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico FindCommonVisualAncestor Restituisce il predecessore comune di due oggetti visivi.
Metodo pubblico GetHashCode Ottiene un codice hash per questo oggetto DependencyObject. (Ereditato da DependencyObject)
Metodo pubblico GetLocalValueEnumerator Crea un enumeratore specializzato per determinare le proprietà di dipendenza che presentano valori impostati localmente nell'oggetto DependencyObject. (Ereditato da DependencyObject)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico GetValue Restituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di DependencyObject. (Ereditato da DependencyObject)
Metodo protetto GetVisualChild Restituisce l’oggetto Visual nell’oggetto VisualCollection padre.
Metodo protetto HitTestCore(GeometryHitTestParameters) Determina se il valore di una geometria si trova all'interno dei limiti dell’oggetto visivo.
Metodo protetto HitTestCore(PointHitTestParameters) Determina se il valore di coordinata di un punto è all'interno dei limiti dell’oggetto visivo.
Metodo pubblico InvalidateProperty Valuta di nuovo il valore effettivo della proprietà di dipendenza specificata. (Ereditato da DependencyObject)
Metodo pubblico IsAncestorOf Determina se l'oggetto visivo è un predecessore dell'oggetto visivo discendente.
Metodo pubblico IsDescendantOf Determina se l'oggetto visivo è un discendente dell'oggetto visivo predecessore.
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protetto OnPropertyChanged Richiamato ogni volta che il valore effettivo di qualsiasi proprietà di dipendenza in DependencyObject è stato aggiornato. La specifica proprietà di dipendenza modificata viene indicata nei dati dell'evento. (Ereditato da DependencyObject)
Metodo protetto OnVisualChildrenChanged Viene chiamato quando l’oggetto VisualCollection dell’oggetto visivo viene modificato.
Metodo protetto OnVisualParentChanged Chiamato quando l’elemento padre dell’oggetto visivo viene modificato.
Metodo pubblico PointFromScreen Converte un oggetto Point sotto forma di coordinate dello schermo in un oggetto Point che rappresenta il sistema di coordinate corrente dell’oggetto Visual.
Metodo pubblico PointToScreen Converte un oggetto Point che rappresenta il sistema di coordinate corrente dell’oggetto Visual in un oggetto Point sotto forma di coordinate dello schermo.
Metodo pubblico ReadLocalValue Restituisce il valore locale di una proprietà di dipendenza, se esistente. (Ereditato da DependencyObject)
Metodo protetto RemoveVisualChild Rimuove la relazione padre-figlio tra due elementi visivi.
Metodo pubblico SetCurrentValue Imposta il valore di una proprietà di dipendenza senza modificare l'origine del valore. (Ereditato da DependencyObject)
Metodo pubblico SetValue(DependencyProperty, Object) Imposta il valore locale di una proprietà di dipendenza, specificata dal relativo identificatore. (Ereditato da DependencyObject)
Metodo pubblico SetValue(DependencyPropertyKey, Object) Imposta il valore locale di una proprietà di dipendenza di sola lettura, specificata dall'identificatore DependencyPropertyKey della proprietà di dipendenza. (Ereditato da DependencyObject)
Metodo protetto ShouldSerializeProperty Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore della proprietà di dipendenza fornita. (Ereditato da DependencyObject)
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblico TransformToAncestor(Visual) Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al predecessore Visual specificato dell’oggetto visivo.
Metodo pubblico TransformToAncestor(Visual3D) Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate da Visual al predecessore Visual3D specificato dell’oggetto visivo.
Metodo pubblico TransformToDescendant Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al discendente specificato dell’oggetto visivo.
Metodo pubblico TransformToVisual Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual all’oggetto visivo specificato.
Metodo pubblico VerifyAccess Impone che il thread chiamante abbia accesso a DispatcherObject. (Ereditato da DispatcherObject)
In alto
Note

La classe Visual rappresenta l'astrazione base da cui deriva ogni oggetto FrameworkElement. Svolge anche la funzione di punto di ingresso per la scrittura di nuovi controlli in WPF e in molti casi può essere concepita come un equivalente di un handle di finestra (HWND) nel modello di applicazione Win32.

Visual è un oggetto WPF principale, il cui ruolo primario è quello di fornire un supporto di rendering. I controlli di interfaccia utente, quali Button e TextBox, derivano dalla classe Visual e ne utilizzano le proprietà definite per salvare in modo permanente i dati di rendering. L'oggetto Visual fornisce supporto per le operazioni elencate di seguito.

  • Visualizzazione dell'output: eseguire il rendering del contenuto del disegno serializzato e salvato in modo permanente di un elemento visivo.

  • Trasformazioni: esecuzione di trasformazioni su un elemento visivo.

  • Area di visualizzazione: fornire supporto dell'area di visualizzazione per un elemento visivo.

  • Hit test: per stabilire se una coordinata (punto) o una geometria specificata è contenuta entro i limiti di un elemento visivo.

  • Calcoli del riquadro delimitatore: definire il rettangolo di delimitazione di un elemento visivo.

Dal punto di vista dell’architettura, l'oggetto Visual non include supporto per altri requisiti di sviluppo di applicazioni o funzionalità WPF che non siano immediatamente correlate al rendering, ad esempio le seguenti:

  • Gestione degli eventi

  • Layout

  • Stili

  • Associazione dati

  • Globalizzazione

Visual è fornito come classe astratta pubblica da cui possono essere derivate ulteriori classi. Nella figura riportata di seguito viene illustrata la gerarchia degli oggetti visivi esistenti e definiti nell’architettura WPF.

Gerarchia delle classi visive

Diagramma delle classi derivate dall'oggetto Visual

In alcuni casi, membri definiti come protetti in Visual sono esposti come membri più facilmente accessibili con nomi simili nella classe UIElement derivata.

Per ulteriori informazioni, vedere Cenni preliminari sul rendering della grafica WPF.

Visual dispone di un numero limitato di livelli. Nelle versioni precedenti di .NET Framework, questa profondità massima è 255. Questo limite è inadeguato per alcuni layout che dispongono di molti livelli nella struttura ad albero visuale.

In .NET Framework 4 la profondità massima di un oggetto Visual è 2047, che consente strutture ad albero visuali molto più profonde. Nella maggior parte delle applicazioni, non vi è spazio sufficiente dello stack per attraversare un numero così elevato di livelli e il risultato è un oggetto StackOverflowException durante il layout. Per la dimensione dello stack predefinita, questa eccezione viene generata generalmente quando la profondità della struttura ad albero è approssimativamente 800, che corrisponde approssimativamente a 190 oggetti TreeViewItem annidati.

Se questa eccezione viene generata dall'applicazione ed è necessario avere una struttura ad albero visuale più profonda, è possibile aumentare la dimensione dello stack dell'applicazione. È possibile aumentare la dimensione dello stack in fase di compilazione tramite l'opzione /STACK o l'utilità EDITBIN. È possibile l'aumento della dimensione dello stack influisca sulle prestazioni dell'applicazione. Per ulteriori informazioni, vedere /STACK (Allocazioni stack) e Opzioni di EDITBIN.

Informazioni sulla versione

.NET Framework

Supportato in: 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1
Piattaforme

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Vedere anche

Riferimenti

Altre risorse