Setter Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wendet einen Wert auf eine Eigenschaft in einer Formatvorlage oder einem VisualState an.
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 .../>
- Vererbung
- Attribute
Beispiele
In diesem Beispiel wird gezeigt, wie Anweisungen in einer Formatvorlage für TextBlock-Elemente verwendet Setter werden.
<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 diesem Beispiel wird gezeigt, wie Mehrere Setter Anweisungen innerhalb der VisualState.Setters-Eigenschaft verwendet werden, um diskrete Eigenschaftswertänderungen auf verschiedene Elemente (ohne Animationen) anzuwenden, wenn ein VisualState angewendet wird.
<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>
Sie können Setter auch auf angefügte Eigenschaftswerte anwenden, indem Sie den Namen der angefügten Eigenschaft im AttachedPropertyProvider angeben. PropertyName-Formular . Wenn Sie beispielsweise einen Setter für die angefügte Eigenschaft Canvas.Left verwenden möchten, verwenden Sie diesen XAML-Code.
<Setter Property="Canvas.Left" Value="100"/>
Wenn Sie einen Wert einer angefügten Eigenschaft mithilfe Targeteiner angefügten Eigenschaft aktualisieren möchten, platzieren Sie den angefügten Eigenschaftspfad in Klammern. In diesem Beispiel wird gezeigt, wie der RelativePanel.AlignRightWithPanel Wert für ein Element mit dem Namen "TitleTextBlock" aktualisiert wird.
<RelativePanel>
<TextBlock x:Name="TitleTextBlock" Text="Title"/>
</RelativePanel>
...
<Setter Target="TitleTextBlock.(RelativePanel.AlignRightWithPanel)" Value="True"/>
Hinweise
Verwenden Sie Setter Anweisungen, um einen Eigenschaftswert innerhalb eines Style - oder VisualState-Objekts festzulegen.
Die Setter.Target-Eigenschaft kann entweder in einer Formatvorlage oder einem VisualState verwendet werden, jedoch auf unterschiedliche Weise. Bei Verwendung in einer StyleEigenschaft kann die eigenschaft, die geändert werden muss, direkt angegeben werden. Bei Verwendung in VisualStateder Target Eigenschaft muss eine TargetPropertyPath -Eigenschaft (gepunktete Syntax mit einem Zielelement und einer explizit angegebenen Eigenschaft) angegeben werden.
Die Setter.Property-Eigenschaft kann nur in einer Formatvorlage und nicht in visualState verwendet werden. Ab Windows 10 können Sie "Setter.Target " überall anstelle von Setter.Property.
Sie müssen sowohl den Wert als auch die Ziel - oder Eigenschaft für ein Setter. Andernfalls wird eine Ausnahme ausgelöst (entweder eine Analyseausnahme oder ein Laufzeitfehler, je nachdem, ob der Setter in XAML erstellt oder im Code geändert wird).
Wenn Sie mithilfe von Code auf eine Setter Instanz zugreifen, können Sie den Wert einer Eigenschaft einer Setter Instanz nicht ändern, wenn der Wert der IsSealed-Eigenschaft für ein übergeordnetes Style -Objekt lautet true. Dies wird auch von der IsSealed-Eigenschaft an einer Person Settergemeldet. Das System legt diese Eigenschaften fest, true wenn die Laufzeit Stile auf UI-Elemente anwendet und diese in der Benutzeroberfläche anzeigt. Beim Versuch, ein versiegeltes Setter Objekt zu ändern, wird ein Laufzeitfehler ausgelöst.
Konstruktoren
| Name | Beschreibung |
|---|---|
| Setter() |
Initialisiert eine neue Instanz der Setter-Klasse ohne anfängliche Eigenschaft oder Wert. |
| Setter(DependencyProperty, Object) |
Initialisiert eine neue Instanz der Setter-Klasse mit anfänglichen Eigenschaften - und Wertinformationen . |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Dispatcher |
Gibt immer in einer Windows App SDK-App zurück |
| DispatcherQueue |
Ruft ab |
| IsSealed |
Ruft einen Wert ab, der angibt, ob sich dieses Objekt in einem unveränderlichen Zustand befindet. (Geerbt von SetterBase) |
| Property |
Dient zum Abrufen oder Festlegen der Eigenschaft, auf die der Wert angewendet werden soll. |
| Target |
Dient zum Abrufen oder Festlegen des Pfads einer Eigenschaft für ein Zielelement, auf das der Wert angewendet werden soll. |
| Value |
Dient zum Abrufen oder Festlegen des Werts, der auf die Eigenschaft angewendet werden soll, die vom Setter angegeben wird. |
Methoden
| Name | Beschreibung |
|---|---|
| ClearValue(DependencyProperty) |
Löscht den lokalen Wert einer Abhängigkeitseigenschaft. (Geerbt von DependencyObject) |
| GetAnimationBaseValue(DependencyProperty) |
Gibt einen Basiswert zurück, der für eine Abhängigkeitseigenschaft eingerichtet wurde, was in Fällen angewendet wird, in denen eine Animation nicht aktiv ist. (Geerbt von DependencyObject) |
| GetValue(DependencyProperty) |
Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft aus einem DependencyObject zurück. (Geerbt von DependencyObject) |
| ReadLocalValue(DependencyProperty) |
Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt wird. (Geerbt von DependencyObject) |
| RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registriert eine Benachrichtigungsfunktion, um Änderungen an einer bestimmten DependencyProperty für diese DependencyObject-Instanz zu überwachen. (Geerbt von DependencyObject) |
| SetValue(DependencyProperty, Object) |
Legt den lokalen Wert einer Abhängigkeitseigenschaft für ein DependencyObject fest. (Geerbt von DependencyObject) |
| UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Bricht eine Änderungsbenachrichtigung ab, die zuvor durch Aufrufen von RegisterPropertyChangedCallback registriert wurde. (Geerbt von DependencyObject) |