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(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 .../>
- Vererbung
- Attribute
Windows-Anforderungen
Gerätefamilie |
Windows 10 (eingeführt in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
|
Beispiele
In diesem Beispiel wird gezeigt, wie Setter-Anweisungen in einem Stil für TextBlock-Elemente verwendet 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 Sie mehrere Setter-Anweisungen innerhalb der VisualState.Setters-Eigenschaft verwenden, 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 einem Style kann 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 einen 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 in einem übergeordneten Style-Objekt true ist. Dies wird auch von der IsSealed-Eigenschaft für einen einzelnen Setter gemeldet. Das System legt diese Eigenschaften auf true fest, wenn die Laufzeit Stile auf UI-Elemente anwendet und auf der Benutzeroberfläche anzeigt. Der Versuch, einen versiegelten Setter zu ändern, löst einen Laufzeitfehler aus.
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 zu verwenden. Die Windows-Runtime unterstützt keine Bindungsverwendung für Setter.Value (die Bindung wird nicht ausgewertet, und der Setter hat keine Auswirkung, Sie erhalten keine Fehler, aber Sie erhalten auch nicht das gewünschte Ergebnis). Wenn Sie XAML-Formatvorlagen aus Windows Presentation Foundation (WPF) oder Microsoft Silverlight XAML konvertieren, ersetzen Sie alle Binding-Ausdrucksverwendungen durch Zeichenfolgen oder Objekte, die Werte festlegen, oder umgestalten Sie die Werte in freigegebene {StaticResource}-Markuperweiterungswerte anstelle von Binding 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 |
Ruft den CoreDispatcher ab, dem dieses Objekt zugeordnet ist. CoreDispatcher stellt eine Funktion dar, die auf das DependencyObject im UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird. (Geerbt von DependencyObject) |
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) |