Setter.Property Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta la proprietà a cui applicare value.
public:
property DependencyProperty ^ Property { DependencyProperty ^ get(); void set(DependencyProperty ^ value); };
DependencyProperty Property();
void Property(DependencyProperty value);
public DependencyProperty Property { get; set; }
var dependencyProperty = setter.property;
setter.property = dependencyProperty;
Public Property Property As DependencyProperty
<Setter Property="propertyName"/>
Valore della proprietà
DependencyProperty a cui verrà applicato il valore. Il valore predefinito è Null.
Esempio
In questo esempio viene illustrato come usare istruzioni Setter in uno stile per gli elementi TextBlock .
<StackPanel>
<StackPanel.Resources>
<!-- Create a Style for a TextBlock to specify that the
Foreground equals Navy, FontSize equals 14, and
VerticalAlignment equals Bottom. -->
<Style TargetType="TextBlock" x:Key="TextBlockStyle">
<Setter Property="Foreground" Value="Navy"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="VerticalAlignment" Value="Bottom"/>
</Style>
</StackPanel.Resources>
<!-- Apply the TextBlockStyle to 2 different TextBlocks. -->
<TextBlock Style="{StaticResource TextBlockStyle}" Text=”Hello”/>
<TextBlock Style="{StaticResource TextBlockStyle}" Text=”World”/>
</StackPanel>
È anche possibile applicare setter ai valori delle proprietà associate specificando il nome della proprietà associata in AttachedPropertyProvider. Modulo PropertyName . Ad esempio, per usare un setter per la proprietà associata Canvas.Left, usa questo codice XAML.
<Setter Property="Canvas.Left" Value="100"/>
Commenti
È necessario specificare le proprietà e Property
Value in un setter. In caso contrario, viene generata un'eccezione (un'eccezione di analisi o un errore di runtime, a seconda che il setter venga creato in XAML o modificato nel codice).
Se si accede a un'istanza Setter usando il codice, non è possibile modificare il valore di una proprietà di un'istanza Setter se il valore della proprietà IsSealed in un oggetto Style padre è true
. Ciò viene segnalato anche dalla proprietà IsSealed su un singolo setter. Il sistema imposta queste proprietà su true
quando il runtime applica gli stili agli elementi dell'interfaccia utente e li visualizza nell'interfaccia utente. Il tentativo di modificare un setter sealed genera un errore di runtime.
È possibile utilizzare un setter per applicare uno stile a una proprietà associata. In questo caso il nome della proprietà di dipendenza è un nome completo in XAML che denomina anche il tipo di definizione della proprietà associata. Ad esempio, <Setter Property="AutomationProperties.LiveSetting" Value="Polite" />
può essere usato per impostare il valore della proprietà associata AutomationProperties.LiveSetting all'interno dello stile per qualsiasi controllo o elemento dell'interfaccia utente.
Nota
Il parser XAML accetta anche nomi di proprietà di dipendenza che includono una classe idonea. Ad esempio, il parser interpreta "Button.Background" o "Control.Background" come riferimento alla proprietà Background in uno stile per un controllo Button. La qualificazione in base alla classe non è necessaria e genera un markup potenzialmente poco chiaro. Se si esegue la migrazione di XAML da altre piattaforme, è possibile che si verifichino o si usino i nomi di proprietà qualificati.
Identificazione delle proprietà di dipendenza
Come indicato, è possibile usare un setter solo per regolare una proprietà tramite uno stile se la proprietà in questione è una proprietà di dipendenza. Le proprietà dell'interfaccia utente in cui è presente uno scenario per l'applicazione di uno stile vengono quasi sempre implementate come proprietà di dipendenza dal Windows Runtime e le proprietà impostabili che non sono una proprietà di dipendenza sugli elementi dell'interfaccia utente sono piuttosto rare. Se si desidera verificare che una proprietà Windows Runtime sia una proprietà di dipendenza, controllare gli elenchi di membri per il tipo che definisce originariamente la proprietà. Se una proprietà è di fatto una proprietà di dipendenza, l'identificatore della proprietà di dipendenza esisterà anche su tale classe e tale identificatore ha lo stesso nome della proprietà stessa, ma con il suffisso Property aggiunto. Questo identificatore della proprietà di dipendenza è una proprietà di sola lettura statica utile in alcuni scenari di proprietà di dipendenza tramite codice. Ad esempio, è possibile usare tale valore di identificatore nel codice per modificare un valore Setter.Property esistente, purché lo stile padre non sia già sealed.
Uso di un setter per una proprietà personalizzata
Per le proprietà personalizzate è necessario dichiarare la proprietà come proprietà di dipendenza se si desidera supportare gli stili, nonché per altri scenari, ad esempio il data binding o l'animazione. Se si esegue questa operazione, la proprietà personalizzata è supportata anche per lo stile in qualsiasi stile con targetType che fa riferimento al tipo personalizzato. Per altre info, vedi Proprietà di dipendenza personalizzate o TargetType.