Setter Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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 Target
de , 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 uneBinding
utilisation de Setter.Value (leBinding
n’évalue pas et n’aSetter
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 lesBinding
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 queBinding
des 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 |
DispatcherQueue |
Obtient le |
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) |