Setter Classe
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.
Applica un valore a una proprietà in uno stile o in un oggetto VisualState.
public ref class Setter sealed : SetterBase
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.Activatable(Microsoft.UI.Xaml.ISetterFactory, 65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Setter final : SetterBase
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.Activatable(typeof(Microsoft.UI.Xaml.ISetterFactory), 65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Setter : SetterBase
Public NotInheritable Class Setter
Inherits SetterBase
<Setter .../>
- Ereditarietà
- Attributi
Esempio
In questo esempio viene illustrato come usare Setter
istruzioni 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>
In questo esempio viene illustrato come usare più Setter
istruzioni all'interno della proprietà VisualState.Setters per applicare modifiche al valore della proprietà discreto su vari elementi (senza animazioni) quando viene applicato un oggetto VisualState .
<Page>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="NarrowState">
<VisualState.Setters>
<Setter Target="myPanel.Orientation" Value="Vertical"/>
<Setter Target="myPanel.Width" Value="380"/>
<Setter Target="myTextBlock.MaxLines" Value="3"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<StackPanel x:Name="myPanel" Orientation="Horizontal">
<TextBlock x:Name="myTextBlock" MaxLines="5" Style="{ThemeResource BodyTextBlockStyle}"/>
</StackPanel>
</Grid>
</Page>
È anche possibile applicare setters ai valori delle proprietà associati specificando il nome della proprietà associata in AttachedPropertyProvider. Modulo PropertyName . Ad esempio, per usare un Setter per la proprietà associata Canvas.Left, usare questo codice XAML.
<Setter Property="Canvas.Left" Value="100"/>
Per aggiornare un valore di una proprietà associata usando Target
, posizionare il percorso della proprietà associata all'interno delle parentesi. In questo esempio viene illustrato come aggiornare il RelativePanel.AlignRightWithPanel
valore in un elemento con il nome 'TitleTextBlock'.
<RelativePanel>
<TextBlock x:Name="TitleTextBlock" Text="Title"/>
</RelativePanel>
...
<Setter Target="TitleTextBlock.(RelativePanel.AlignRightWithPanel)" Value="True"/>
Commenti
Usare Setter
istruzioni per impostare un valore di proprietà all'interno di uno stile o di un oggetto VisualState.
La proprietà Setter.Target può essere usata in uno stile o in un oggetto VisualState, ma in modi diversi. Quando viene usato in un Style
oggetto , la proprietà che deve essere modificata può essere specificata direttamente. Se usato in VisualState
, la Target
proprietà deve essere assegnata a TargetPropertyPath (sintassi punteggiata con un elemento di destinazione e una proprietà specificata in modo esplicito).
La proprietà Setter.Property può essere usata solo in uno stile e non in un oggetto VisualState. A partire da Windows 10, è possibile usare Setter.Target ovunque anziché Setter.Property
.
È necessario specificare sia ilvalore che la proprietà target o la proprietà in un Setter
oggetto . 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 uno stile padre è true
. Viene anche segnalato dalla proprietà IsSealed su un singolo Setter
oggetto . Il sistema imposta queste proprietà su true
quando il runtime applica stili agli elementi dell'interfaccia utente e li visualizza nell'interfaccia utente. Il tentativo di modificare un oggetto sealed Setter
genera un errore di runtime.
Note sulla migrazione
- Windows Presentation Foundation (WPF) e Microsoft Silverlight supportano la possibilità di usare un'espressione binding per fornire il valore per un
Setter
oggetto in uno stile. Il Windows Runtime non supporta unBinding
utilizzo per Setter.Value (Binding
non valuta eSetter
non ha alcun effetto, non si otterranno errori, ma non si otterranno i risultati desiderati). Quando si convertono stili XAML da WPF o Microsoft Silverlight XAML, sostituire qualsiasiBinding
utilizzo delle espressioni con stringhe o oggetti che impostano valori o refactorare i valori come valori di estensione di markup {StaticResource} condivisi anzichéBinding
valori ottenuti.
Costruttori
Setter() |
Inizializza una nuova istanza della classe Setter senza proprietà o valore iniziale. |
Setter(DependencyProperty, Object) |
Inizializza una nuova istanza della classe Setter con informazioni iniziali sulla proprietà e sul valore . |
Proprietà
Dispatcher |
Restituisce |
DispatcherQueue |
Ottiene l'oggetto |
IsSealed |
Ottiene un valore che indica se l'oggetto è in uno stato non modificabile. (Ereditato da SetterBase) |
Property |
Ottiene o imposta la proprietà da applicare a Value . |
Target |
Ottiene o imposta il percorso di una proprietà in un elemento di destinazione per applicare il valore a. |
Value |
Ottiene o imposta il valore da applicare alla proprietà specificata da Setter. |
Metodi
ClearValue(DependencyProperty) |
Cancella il valore locale di una proprietà di dipendenza. (Ereditato da DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Restituisce qualsiasi valore di base stabilito per una proprietà di dipendenza, che si applica nei casi in cui un'animazione non è attiva. (Ereditato da DependencyObject) |
GetValue(DependencyProperty) |
Restituisce il valore effettivo corrente di una proprietà di dipendenza da un oggetto DependencyObject. (Ereditato da DependencyObject) |
ReadLocalValue(DependencyProperty) |
Restituisce il valore locale di una proprietà di dipendenza, se viene impostato un valore locale. (Ereditato da DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra una funzione di notifica per l'ascolto delle modifiche a un'istanza di DependencyObject specifica. (Ereditato da DependencyObject) |
SetValue(DependencyProperty, Object) |
Imposta il valore locale di una proprietà di dipendenza in un oggetto DependencyObject. (Ereditato da DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback. (Ereditato da DependencyObject) |