Windows Dev Center

Setter.Property Property

Ruft die Eigenschaft ab, auf die der Value angewendet werden soll, oder legt sie fest.

Syntax


public DependencyProperty Property { get; set; }


<Setter Property="propertyName"/>

XAML Values

propertyName

Eine Zeichenfolge, die den Namen der gesetzten Eigenschaft angibt. Diese Eigenschaft muss eine Abhängigkeitseigenschaft sein.

Eigenschaftswert

Typ: DependencyProperty

Eine DependencyProperty, auf die der Value angewendet wird. Die Standardeinstellung lautet null.

Hinweise

Sie müssen sowohl die Property-Eigenschaft als auch die Value-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 auf eine Setter-Instanz mit Code zugreifen, können Sie den Wert der Eigenschaft einer Setter-Instanz nicht ändern, wenn der Wert der IsSealed-Eigenschaft für einen übergeordneten Style auf true festgelegt ist. Dies wird auch von der IsSealed-Eigenschaft auf einem einzelnen Setter gemeldet. Das System legt diese Eigenschaften auf true fest, wenn die Laufzeit Stile auf UI-Elemente anwendet und sie in der UI anzeigt. Der Versuch, einen versiegelten Setter zu ändern, löst einen Laufzeitfehler aus.

Sie können Setter verwenden, um eine angefügte Eigenschaft zu formatieren. In diesem Fall ist der Abhängigkeitseigenschaftenname ein qualifizierter Name in XAML, der auch den angefügten definierenden Typ der Eigenschaft benennt. Beispielsweise kann <Setter Property="AutomationProperties.LiveSetting" Value="Polite" /> verwendet werden, um den angefügten Eigenschaftswert AutomationProperties.LiveSetting im Format für jedes Steuerelement oder UI-Element festzulegen.

Hinweis  Der XAML-Parser akzeptiert auch Abhängigkeitseigenschaftennamen, die eine qualifizierende Klasse enthalten. Beispielsweise interpretiert der Parser "Button.Background" oder "Control.Background" als Verweis auf die Background-Eigenschaft in einem Format für eine Button. Die Kennzeichnung nach Klasse ist jedoch nicht erforderlich und kann zu irreführendem Markup führen. Es können qualifizierte Eigenschaften vorhanden sein oder verwendet werden, wenn Sie XAML aus anderen Plattformen migrieren.

Bezeichnen der Abhängigkeitseigenschaften

Wie bereits erwähnt, können Sie Setter nur verwenden, um eine Eigenschaft anhand eines Stils anzupassen, wenn die betreffende Eigenschaft eine Abhängigkeitseigenschaft ist. Die Benutzeroberflächeneigenschaften, in denen es ein Szenario für das Anwenden eines Stils gibt, sind fast immer als Abhängigkeitseigenschaften durch die Windows-Runtime implementiert, und die festlegbaren Eigenschaften, die keine Abhängigkeitseigenschaft der Benutzeroberflächenelemente sind, sind relativ 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 hat. Wenn eine Eigenschaft in Wirklichkeit eine Abhängigkeitseigenschaft ist, ist der Abhängigkeitseigenschaftsbezeichner bei dieser Klasse auch vorhanden, und dieser Bezeichner hat den gleichen Namen wie die Eigenschaft selbst, wobei aber das Suffix Property hinzugefügt wird. Dieser Abhängigkeitseigenschaftbezeichner ist eine statische schreibgeschützte Eigenschaft, die in einigen Abhängigkeitseigenschaftszenarios durch Code hilfreich ist. Beispielsweise können Sie einen solchen Bezeichnerwert im Code verwenden, um einen bestehenden Setter.Property-Wert einzustellen, solange das übergeordnete Format noch nicht versiegelt ist.

Verwenden eines Setters für eine benutzerdefinierte Eigenschaft

Für eigene benutzerdefinierte 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. Dadurch wird die benutzerdefinierte Eigenschaft auch für das Formatieren mit jedem Style unterstützt, der einen TargetType besitzt, der auf den benutzereigenen Typ verweist. Weitere Informationen finden Sie unter dem Artikel zu Benutzerdefinierte Abhängigkeitseigenschaften oder TargetType.

Beispiele

In diesem Beispiel werden zwei Stile erstellt: einer für einen TextBlock und einer für ein TextBox. Wenn Sie Property-Attributwerte in XAML festlegen, geben Sie den Namen der Eigenschaft an.


<StackPanel>
  <StackPanel.Resources>
    <!--Create a Style for a TextBlock to specify that the
              Foreground equals Navy, FontSize equals 14, and
              VerticalAlignment equals Botton.-->
    <Style TargetType="TextBlock" x:Key="TextBlockStyle">
      <Setter Property="Foreground" Value="Navy"/>
      <Setter Property="FontSize" Value="14"/>
      <Setter Property="VerticalAlignment" Value="Bottom"/>
    </Style>

    <!--Create a Style for a TextBlock that specifies that
              the Width is 200, Height is 20, Margin is 4,
              Background is LightBlue, and FontSize is 14.-->
    <Style TargetType="TextBox" x:Key="TextBoxStyle">
      <Setter Property="Width" Value="200"/>
      <Setter Property="Height" Value="30"/>
      <Setter Property="Margin" Value="4"/>
      <Setter Property="FontSize" Value="14"/>
      <Setter Property="Background">
        <Setter.Value>
          <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
            <GradientStop Color="White" Offset="0.0"/>
            <GradientStop Color="LightBlue" Offset="0.5"/>
            <GradientStop Color="Navy" Offset="1"/>
          </LinearGradientBrush>
        </Setter.Value>
      </Setter>
    </Style>
  </StackPanel.Resources>

  <!--Apply the TextBlockStyle and TextBoxStyle to each 
          TextBlock and TextBox, respectively.-->
  <StackPanel Orientation="Horizontal">
    <TextBlock Style="{StaticResource TextBlockStyle}">
              First Name:
          </TextBlock>
    <TextBox Style="{StaticResource TextBoxStyle}"/>
  </StackPanel>
  <StackPanel Orientation="Horizontal">
    <TextBlock Style="{StaticResource TextBlockStyle}">
              Last Name:
          </TextBlock>
    <TextBox Style="{StaticResource TextBoxStyle}"  
                   Margin="6,4,4,4"/>
  </StackPanel>
</StackPanel>


Im ersten Beispiel sind die Namen alle einfache Namen mit einem zugehörigen Typnamen. Bei dieser Verwendung der Eigenschaft wird stets vorausgesetzt, dass sie in einer Klasse vorhanden ist, die der explizite oder implizite TargetType des Stils ist.

Sie können auch Setter auf die angefügten Eigenschaftswerte anwenden, indem Sie den angefügten Eigenschaftennamen im AttachedPropertyProvider-PropertyName-Formular angeben. Um beispielsweise einen Setter für die angefügte Eigenschaft Canvas.Left zu verwenden, verwenden Sie dieses XAML.


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

Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadaten

Windows.winmd

Siehe auch

Setter

 

 

Anzeigen:
© 2015 Microsoft