Setter Classe

Définition

Applique une valeur à une propriété dans un Style ou un 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 .../>
Héritage
Object Platform::Object IInspectable DependencyObject SetterBase Setter
Attributs

Exemples

Cet exemple montre comment utiliser Setter des instructions dans un style pour les éléments 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>

Cet exemple montre comment utiliser plusieurs Setter instructions à l’intérieur de la propriété VisualState.Setters pour appliquer des modifications discrètes de valeur de propriété à différents éléments (sans animations) lorsqu’un VisualState est appliqué.

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

Vous pouvez également appliquer des setters aux valeurs de propriété jointes, en spécifiant le nom de la propriété jointe dans attachedPropertyProvider. Formulaire PropertyName . Par exemple, pour utiliser un setter pour la propriété jointe Canvas.Left, utilisez ce XAML.

<Setter Property="Canvas.Left" Value="100"/>

Pour mettre à jour une valeur d’une propriété jointe à l’aide Targetde , placez le chemin de la propriété jointe entre parenthèses. Cet exemple montre comment mettre à jour la RelativePanel.AlignRightWithPanel valeur sur un élément nommé « TitleTextBlock ».

<RelativePanel>
    <TextBlock x:Name="TitleTextBlock" Text="Title"/>
</RelativePanel>

...

<Setter Target="TitleTextBlock.(RelativePanel.AlignRightWithPanel)" Value="True"/>

Remarques

Utilisez Setter des instructions pour définir une valeur de propriété dans un Style ou un VisualState.

La propriété Setter.Target peut être utilisée dans un Style ou un VisualState, mais de différentes manières. Lorsqu’elle est utilisée dans un Style, la propriété qui doit être modifiée peut être spécifiée directement. Lorsqu’elle est utilisée dans VisualState, la Target propriété doit recevoir une propriété TargetPropertyPath (syntaxe en pointillés avec un élément cible et une propriété explicitement spécifiés).

La propriété Setter.Property peut être utilisée uniquement dans un style et non dans un VisualState. À partir de Windows 10, vous pouvez utiliser Setter.Target partout au lieu de Setter.Property.

Vous devez spécifier la valeur et la cible ou la propriété sur un Setter. Sinon, une exception est levée (une exception d’analyse ou une erreur d’exécution, selon que l’élément Setter est créé en XAML ou modifié dans le code).

Si vous accédez à un Setter instance à l’aide de code, vous ne pouvez pas modifier la valeur d’une propriété d’un Setter instance si la valeur de la propriété IsSealed sur un style parent est true. Cela est également signalé par la propriété IsSealed sur un individu Setter. Le système définit ces propriétés true sur lorsque le runtime applique des styles aux éléments d’interface utilisateur et les affiche dans l’interface utilisateur. La tentative de modification d’un sealed Setter génère une erreur d’exécution.

Notes de migration

  • Windows Presentation Foundation (WPF) et Microsoft Silverlight ont pris en charge la possibilité d’utiliser une expression binding pour fournir la valeur d’un Setter dans un style. L’Windows Runtime ne prend pas en charge une Binding utilisation de Setter.Value (le Binding n’évalue pas et n’a Setter aucun effet, vous n’obtiendrez pas d’erreurs, mais vous n’obtiendrez pas non plus le résultat souhaité). Lorsque vous convertissez des styles XAML à partir de WPF ou de XAML Microsoft Silverlight, remplacez les Binding utilisations d’expression par des chaînes ou des objets qui définissent des valeurs, ou refactorisez les valeurs en tant que valeurs d’extension de balisage partagées {StaticResource} plutôt que Bindingdes valeurs obtenues.

Constructeurs

Setter()

Initialise une nouvelle instance de la classe Setter sans propriété ou valeur initiale.

Setter(DependencyProperty, Object)

Initialise une nouvelle instance de la classe Setter avec les informations de propriété et de valeur initiales.

Propriétés

Dispatcher

Retourne null toujours dans une application SDK d'application Windows. Utilisez DispatcherQueue à la place.

(Hérité de DependencyObject)
DispatcherQueue

Obtient le DispatcherQueue auquel cet objet est associé. représente DispatcherQueue une fonctionnalité qui peut accéder au DependencyObject sur le thread d’interface utilisateur, même si le code est initié par un thread autre que l’interface utilisateur.

(Hérité de DependencyObject)
IsSealed

Obtient une valeur qui indique si cet objet est dans un état non modifiable.

(Hérité de SetterBase)
Property

Obtient ou définit la propriété à laquelle appliquer la valeur .

Target

Obtient ou définit le chemin d’accès d’une propriété sur un élément cible auquel appliquer la valeur .

Value

Obtient ou définit la valeur à appliquer à la propriété spécifiée par l’élément Setter.

Méthodes

ClearValue(DependencyProperty)

Efface la valeur locale d’une propriété de dépendance.

(Hérité de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Retourne toute valeur de base établie pour une propriété de dépendance, qui s’appliquerait dans les cas où une animation n’est pas active.

(Hérité de DependencyObject)
GetValue(DependencyProperty)

Retourne la valeur effective actuelle d’une propriété de dépendance à partir d’un DependencyObject.

(Hérité de DependencyObject)
ReadLocalValue(DependencyProperty)

Retourne la valeur locale d’une propriété de dépendance, si une valeur locale est définie.

(Hérité de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Inscrit une fonction de notification pour écouter les modifications apportées à un DependencyProperty spécifique sur ce instance DependencyObject.

(Hérité de DependencyObject)
SetValue(DependencyProperty, Object)

Définit la valeur locale d’une propriété de dépendance sur un DependencyObject.

(Hérité de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annule une notification de modification précédemment inscrite en appelant RegisterPropertyChangedCallback.

(Hérité de DependencyObject)

S’applique à

Voir aussi