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 einem Style - oder VisualState-Objekt 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 einem Stil 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 auch Setter 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"/>
Um einen Wert einer angefügten Eigenschaft mit Target
zu aktualisieren, platzieren Sie den angefügten Eigenschaftenpfad 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 einem Style - oder einem VisualState-Objekt verwendet werden, aber auf unterschiedliche Weise. Bei Verwendung in kann Style
die Eigenschaft, die geändert werden muss, direkt angegeben werden. Bei Verwendung in VisualState
muss der Target
Eigenschaft ein TargetPropertyPath zugewiesen werden (gepunktete Syntax mit explizit angegebenem Zielelement und Eigenschaft).
Die Setter.Property-Eigenschaft kann nur in einem Style und nicht in einem VisualState verwendet werden. Ab Windows 10 können Sie Setter.Target überall anstelle von Setter.Property
verwenden.
Sie müssen sowohl den Wert als auch das Ziel oder die Eigenschaft für eine Setter
angeben. 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
instance zugreifen, können Sie den Wert einer Eigenschaft eines Setter
instance nicht ändern, wenn der Wert der IsSealed-Eigenschaft für ein übergeordnetes Style-Element isttrue
. Dies wird auch von der IsSealed-Eigenschaft für eine einzelne gemeldet Setter
. Das System legt diese Eigenschaften auf fest true
, wenn die Laufzeit Stile auf UI-Elemente anwendet und auf der Benutzeroberfläche anzeigt. Beim Versuch, eine Versiegelung Setter
zu ändern, wird ein Laufzeitfehler ausgelöst.
Migrationshinweise
- Windows Presentation Foundation (WPF) und Microsoft Silverlight unterstützten die Möglichkeit, einen Bindungsausdruck zum Angeben des Werts für einen
Setter
in einem Stil anzugeben. Die Windows-Runtime unterstütztBinding
keine Verwendung für Setter.Value (dieBinding
wird nicht ausgewertet undSetter
hat keine Auswirkung, Sie erhalten keine Fehler, aber Sie erhalten auch nicht das gewünschte Ergebnis). Wenn Sie XAML-Formatvorlagen aus WPF oder Microsoft Silverlight XAML konvertieren, ersetzen Sie alleBinding
Ausdrucksverwendungen durch Zeichenfolgen oder Objekte, die Werte festlegen, oder umgestalten Sie die Werte als freigegebene {StaticResource}-Markuperweiterungswerte anstelleBinding
von -abgerufenen Werten.
Konstruktoren
Setter() |
Initialisiert eine neue instance der Setter-Klasse ohne anfängliche Eigenschaft oder Wert. |
Setter(DependencyProperty, Object) |
Initialisiert eine neue instance der Setter-Klasse mit anfänglichen Property- und Value-Informationen. |
Eigenschaften
Dispatcher |
Gibt immer in einer Windows App SDK-App zurück |
DispatcherQueue |
Ruft den |
IsSealed |
Ruft einen Wert ab, der angibt, ob dieses Objekt einen unveränderlichen Zustand aufweist. (Geerbt von SetterBase) |
Property |
Ruft die Eigenschaft ab, auf die der Wert angewendet werden soll, oder legt sie fest. |
Target |
Ruft den Pfad einer Eigenschaft für ein Zielelement ab, auf das der Wert angewendet werden soll, oder legt diesen fest. |
Value |
Ruft den Wert ab, der auf die eigenschaft angewendet werden soll, die vom Setter angegeben wird, oder legt diesen fest. |
Methoden
ClearValue(DependencyProperty) |
Löscht den lokalen Wert einer Abhängigkeitseigenschaft. (Geerbt von DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Gibt einen beliebigen Basiswert zurück, der für eine Abhängigkeitseigenschaft eingerichtet wurde, der in Fällen gilt, 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 ist. (Geerbt von DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registriert eine Benachrichtigungsfunktion zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für dieses DependencyObject-instance. (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) |