Setter.Property Eigenschaft
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.
Ruft die Eigenschaft ab, auf die der Wert angewendet werden soll, oder legt sie fest.
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 DependencyProperty , auf die der Wert angewendet wird. Der Standardwert ist NULL.
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>
Sie können auch Setter auf angefügte Eigenschaftswerte anwenden, indem Sie den Namen der angefügten Eigenschaft im AttachedPropertyProvider angeben. PropertyName-Formular . Um beispielsweise einen Setter für die angefügte Eigenschaft Canvas.Left zu verwenden, verwenden Sie This XAML.
<Setter Property="Canvas.Left" Value="100"/>
Hinweise
Sie müssen sowohl die Eigenschaften als auch valueProperty
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 einen 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 einen einzelnen Setter gemeldet. Das System legt diese Eigenschaften auf fest true
, 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.
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 Definitionstyp der angefügten Eigenschaft benennt. Beispielsweise kann verwendet werden, <Setter Property="AutomationProperties.LiveSetting" Value="Polite" />
um den wert der angefügten AutomationProperties.LiveSetting-Eigenschaft innerhalb des Stils für jedes Steuerelement oder UI-Element festzulegen.
Hinweis
Der XAML-Parser akzeptiert auch Abhängigkeitseigenschaftennamen, die eine qualifizierende Klasse enthalten. Der Parser interpretiert beispielsweise "Button.Background" oder "Control.Background" als Verweis auf die Background-Eigenschaft in einem Stil für eine Schaltfläche. Die Qualifikation nach Klasse ist jedoch nicht erforderlich und führt zu möglicherweise verwirrendem Markup. Wenn Sie XAML von anderen Plattformen migrieren, treten möglicherweise qualifizierte Eigenschaftennamensverwendungen auf oder verwenden sie.
Identifizieren von Abhängigkeitseigenschaften
Wie bereits erwähnt, können Sie einen Setter nur verwenden, um eine Eigenschaft über einen Stil anzupassen, wenn es sich bei der betreffenden Eigenschaft um eine Abhängigkeitseigenschaft handelt. Die Ui-Eigenschaften, in denen es ein Szenario zum Anwenden eines Stils gibt, werden fast immer als Abhängigkeitseigenschaften vom Windows-Runtime implementiert, und festlegbare Eigenschaften, die keine Abhängigkeitseigenschaft für UI-Elemente sind, sind recht 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 den gleichen Namen wie die Eigenschaft selbst, aber das Suffix Property wurde hinzugefügt. Dieser Abhängigkeitseigenschaftsbezeichner ist eine statische schreibgeschützte Eigenschaft, die in einigen Abhängigkeitseigenschaftsszenarien über Code nützlich ist. Beispielsweise können Sie einen solchen Bezeichnerwert im Code verwenden, um einen vorhandenen Setter.Property-Wert anzupassen, solange der übergeordnete Stil 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 Stile unterstützen möchten, sowie für andere Szenarien wie Datenbindung oder Animation. Wenn Sie dies tun, wird Ihre benutzerdefinierte Eigenschaft auch für das Formatieren in jedem Style mit einem TargetType unterstützt, der auf Ihren benutzerdefinierten Typ verweist. Weitere Informationen finden Sie unter Benutzerdefinierte Abhängigkeitseigenschaften oder TargetType.