Condividi tramite


Setter Classe

Definizione

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à
Object Platform::Object IInspectable DependencyObject SetterBase Setter
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à discreta 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 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"/>

Per aggiornare un valore di una proprietà associata usando Target, posizionare il percorso della proprietà associata tra 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

Utilizzare Setter le istruzioni per impostare un valore della proprietà all'interno di uno Stile o di un oggetto VisualState.

La proprietà Setter.Target può essere utilizzata in uno stile o in un oggetto VisualState, ma in modi diversi. Se utilizzata in un Styleoggetto , è possibile specificare direttamente la proprietà che deve essere modificata. Se utilizzata in VisualState, alla Target proprietà deve essere assegnata una proprietà TargetPropertyPath (sintassi punteggiata con un elemento di destinazione e una proprietà specificata in modo esplicito).

La proprietà Setter.Property può essere utilizzata solo in uno stile e non in un oggetto VisualState. A partire da Windows 10, puoi usare Setter.Target ovunque anziché Setter.Property.

È necessario specificare sia Il valore che la proprietà o la destinazione in un oggetto 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 codice, non è possibile modificare il valore di una proprietà di un'istanza Setter se il valore della proprietà IsSealed in uno stile padre è true. Questa operazione viene segnalata anche dalla proprietà IsSealed in un singolo Setteroggetto . 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 sealed Setter genera un errore di runtime.

Costruttori

Nome Descrizione
Setter()

Inizializza una nuova istanza della classe Setter senza proprietà o valore iniziali.

Setter(DependencyProperty, Object)

Inizializza una nuova istanza della classe Setter con le informazioni iniziali proprietà e valore .

Proprietà

Nome Descrizione
Dispatcher

Restituisce null sempre in un'app di Windows App SDK. Usare invece DispatcherQueue .

(Ereditato da DependencyObject)
DispatcherQueue

Ottiene l'oggetto DispatcherQueue a cui è associato questo oggetto. Rappresenta DispatcherQueue una funzionalità che può accedere al nel thread dell'interfaccia DependencyObject utente anche se il codice viene avviato da un thread non dell'interfaccia utente.

(Ereditato da DependencyObject)
IsSealed

Ottiene un valore che indica se l'oggetto è in uno stato non modificabile.

(Ereditato da SetterBase)
Property

Ottiene o imposta la proprietà a cui applicare Value.

Target

Ottiene o imposta il percorso di una proprietà su un elemento di destinazione a cui applicare value.

Value

Ottiene o imposta il valore da applicare alla proprietà specificata dal setter.

Metodi

Nome Descrizione
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 dependencyObject.

(Ereditato da DependencyObject)
ReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se è impostato un valore locale.

(Ereditato da DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una funzione di notifica per l'ascolto delle modifiche a una dipendenza specifica in questa istanza dependencyObject .

(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)

Si applica a

Vedi anche