Setter.Property Eigenschaft

Definition

Dient zum Abrufen oder Festlegen der Eigenschaft, auf die der Wert angewendet werden soll.

public:
 property DependencyProperty ^ Property { DependencyProperty ^ get(); void set(DependencyProperty ^ value); };
DependencyProperty Property();

void Property(DependencyProperty value);
public DependencyProperty Property { get; set; }
var dependencyProperty = setter.property;
setter.property = dependencyProperty;
Public Property Property As DependencyProperty
<Setter Property="propertyName"/>

Eigenschaftswert

Eine Abhängigkeitseigenschaft , auf die der Wert angewendet wird. Der Standardwert ist NULL.

Beispiele

In diesem Beispiel wird gezeigt, wie Setter-Anweisungen in einer Formatvorlage 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>

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 z. B. einen Setter für die angefügte Eigenschaft Canvas.Left verwenden möchten, verwenden Sie diesen XAML-Code.

<Setter Property="Canvas.Left" Value="100"/>

Hinweise

Sie müssen sowohl die Eigenschaften "Value" als auch "PropertyValue" 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-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 für einen einzelnen Setter gemeldet. Das System legt diese Eigenschaften fest, true wenn die Laufzeit Stile auf UI-Elemente anwendet und diese in der Benutzeroberfläche anzeigt. Beim Versuch, einen versiegelten Setter zu ändern, wird ein Laufzeitfehler ausgelöst.

Sie können einen Setter verwenden, um eine angefügte Eigenschaft zu formatieren. In diesem Fall ist der Name der Abhängigkeitseigenschaft ein qualifizierter Name in XAML, der auch den definierenden Typ der angefügten Eigenschaft benennt. Beispielsweise <Setter Property="AutomationProperties.LiveSetting" Value="Polite" /> könnte der Wert der angefügten AutomationProperties.LiveSetting-Eigenschaft innerhalb der Formatvorlage für ein beliebiges Steuerelement oder UI-Element festgelegt werden.

Hinweis

Der XAML-Parser akzeptiert auch Abhängigkeitseigenschaftennamen, die eine qualifizierende Klasse enthalten. Beispielsweise interpretiert der Parser entweder "Button.Background" oder "Control.Background" als Verweis auf die Background-Eigenschaft in einer Formatvorlage für eine Schaltfläche. Das Qualifizieren nach Klasse ist jedoch nicht erforderlich und führt zu potenziell verwirrenden Markups. Bei der Migration von XAML von anderen Plattformen können qualifizierte Eigenschaftennamen verwendet werden.

Identifizieren von Abhängigkeitseigenschaften

Wie bereits erwähnt, können Sie einen Setter nur verwenden, um eine Eigenschaft über eine Formatvorlage anzupassen, wenn es sich bei der betreffenden Eigenschaft um eine Abhängigkeitseigenschaft handelt. Die UI-Eigenschaften, in denen es ein Szenario zum Anwenden einer Formatvorlage gibt, werden fast immer als Abhängigkeitseigenschaften durch die Windows-Runtime implementiert, und festgelegte Eigenschaften, die keine Abhängigkeitseigenschaft von UI-Elementen sind, sind ziemlich selten. Wenn Sie überprüfen möchten, ob eine Windows-Runtime Eigenschaft eine Abhängigkeitseigenschaft ist, überprüfen Sie die Memberlisten für den Typ, der die Eigenschaft ursprünglich definiert. Wenn eine Eigenschaft tatsächlich eine Abhängigkeitseigenschaft ist, ist der Bezeichner der Abhängigkeitseigenschaft auch für diese Klasse vorhanden, und dieser Bezeichner hat denselben Namen wie die Eigenschaft selbst, aber mit dem Hinzugefügten Suffix Property . Diese Abhängigkeitseigenschafts-ID ist eine statische schreibgeschützte Eigenschaft, die in einigen Abhängigkeitseigenschaftsszenarien mithilfe von Code nützlich ist. Sie können beispielsweise einen solchen Bezeichnerwert im Code verwenden, um einen vorhandenen Setter.Property-Wert anzupassen, solange die übergeordnete Formatvorlage noch nicht versiegelt ist.

Verwenden eines Setters für eine benutzerdefinierte Eigenschaft

Für Ihre eigenen benutzerdefinierten Eigenschaften sollten Sie die Eigenschaft als Abhängigkeitseigenschaft deklarieren, wenn Sie Formatvorlagen unterstützen möchten, sowie für andere Szenarien wie Datenbindung oder Animation. Wenn Sie dies tun, wird Ihre benutzerdefinierte Eigenschaft auch für die Formatierung auf einem beliebigen Stil mit einem TargetType unterstützt, der auf Ihren benutzerdefinierten Typ verweist. Weitere Informationen finden Sie unter Benutzerdefinierte Abhängigkeitseigenschaften oder TargetType.

Gilt für: