Partager via


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(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 .../>
Héritage
Object Platform::Object IInspectable DependencyObject SetterBase Setter
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

Cet exemple montre comment utiliser les instructions Setter 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 instructions Setter à l’intérieur de la propriété VisualState.Setters pour appliquer des modifications discrètes de valeur de propriété sur 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 le JointdPropertyProvider. 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 d’accès de la propriété jointe entre parenthèses. Cet exemple montre comment mettre à jour la RelativePanel.AlignRightWithPanel valeur d’un élément portant le nom « TitleTextBlock ».

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

...

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

Remarques

Utilisez les instructions Setter pour définir une valeur de propriété au sein d’un Style ou d’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 propriété Target doit recevoir une propriété TargetPropertyPath (syntaxe en pointillés avec un élément cible et une propriété spécifiés explicitement).

La propriété Setter.Property ne peut être utilisée que 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 fois 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 le 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 vraie. Cela est également signalé par la propriété IsSealed sur un Setter individuel. Le système définit ces propriétés sur true 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 setter scellé 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. Le Windows Runtime ne prend pas en charge une utilisation de liaison pour Setter.Value (la liaison n’est pas évaluée et le setter n’a 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 Windows Presentation Foundation (WPF) ou du XAML Microsoft Silverlight, remplacez les utilisations d’expressions de liaison par des chaînes ou des objets qui définissent des valeurs, ou refactorisez les valeurs en tant que valeurs d’extension de balisage {StaticResource} partagées au lieu de valeurs obtenues par liaison.

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

Obtient le CoreDispatcher auquel cet objet est associé. CoreDispatcher représente une installation qui peut accéder à 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 le 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’applique 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 objet 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