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(Windows.UI.Xaml.ISetterFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 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.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.ISetterFactory, 65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class Setter final : SetterBase
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.ISetterFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Setter : SetterBase
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.ISetterFactory), 65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class Setter : SetterBase
Public NotInheritable Class Setter
Inherits SetterBase
<Setter .../>
Ereditarietà
Object Platform::Object IInspectable DependencyObject SetterBase Setter
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

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>

In questo esempio viene illustrato come usare più istruzioni Setter all'interno della proprietà VisualState.Setters per applicare modifiche al valore della proprietà discreti 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 istruzioni Setter 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 uno stile, è possibile specificare direttamente la proprietà che deve essere modificata. Se usato in VisualState, la proprietà Target 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 il valore che la proprietà o la destinazione 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 di Setter usando il codice, non è possibile modificare il valore di una proprietà di un'istanza di Setter se il valore della proprietà IsSealed in uno stile padre è true. Questo è segnalato anche dalla proprietà IsSealed su un singolo Setter. 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 setter bloccato genera un errore di runtime.

Note sulla migrazione

  • Windows Presentation Foundation (WPF) e Microsoft Silverlight supportano la possibilità di usare un'espressione binding per specificare il valore per un setter in uno stile. Il Windows Runtime non supporta un utilizzo di binding per Setter.Value(l'associazione non valuterà e setter non ha alcun effetto, non si otterranno errori, ma non si otterranno i risultati desiderati). Quando si convertono stili XAML da Windows Presentation Foundation (WPF) o Microsoft Silverlight XAML, sostituire eventuali usi delle espressioni di binding con stringhe o oggetti che impostano valori o refactorare i valori come valori di estensione di markup {StaticResource} condivisi anziché valori ottenuti dall'associazione.

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

Ottiene CoreDispatcher associato a questo oggetto. CoreDispatcher rappresenta una struttura che può accedere a DependencyObject nel thread dell'interfaccia utente anche se il codice viene avviato da un thread non 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à 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