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à 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 Styleoggetto , 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 Setteroggetto . 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 Setteroggetto . 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 un Binding utilizzo per Setter.Value (Bindingnon valuta e Setter 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 qualsiasi Binding utilizzo delle espressioni con stringhe o oggetti che impostano valori o refactorare i valori come valori di estensione di markup {StaticResource} condivisi anziché Bindingvalori 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 null sempre in un'app SDK per app di Windows. Usare invece DispatcherQueue .

(Ereditato da DependencyObject)
DispatcherQueue

Ottiene l'oggetto DispatcherQueue associato. Rappresenta DispatcherQueue una struttura che può accedere al thread dell'interfaccia utente anche se il codice viene avviato da un thread non dell'interfaccia DependencyObject 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à 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)

Si applica a

Vedi anche