Freigeben über


Setter Klasse

Definition

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
Object Platform::Object IInspectable DependencyObject SetterBase Setter
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 Targetzu 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 Styledie Eigenschaft, die geändert werden muss, direkt angegeben werden. Bei Verwendung in VisualStatemuss 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.Propertyverwenden.

Sie müssen sowohl den Wert als auch das Ziel oder die Eigenschaft für eine Setterangeben. 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ützt Binding keine Verwendung für Setter.Value (die Binding wird nicht ausgewertet und Setter 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 alle Binding Ausdrucksverwendungen durch Zeichenfolgen oder Objekte, die Werte festlegen, oder umgestalten Sie die Werte als freigegebene {StaticResource}-Markuperweiterungswerte anstelle Bindingvon -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ücknull. Verwenden Sie stattdessen DispatcherQueue .

(Geerbt von DependencyObject)
DispatcherQueue

Ruft den DispatcherQueue ab, dem dieses Objekt zugeordnet ist. Stellt DispatcherQueue eine Funktion dar, die auf den 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)

Gilt für:

Weitere Informationen