Setter.Value Property

Ruft den Wert ab, der auf die Eigenschaft angewendet werden soll, die vom Setter angegeben wird, oder legt diesen Wert fest.

Syntax


public object Value { get; set; }


<Setter ...>
  <Setter.Value>
    objectValue
  </Setter.Value>
</Setter>


<Setter Value="attributeValue"/>
-or-
<Setter Value="extensionUsage"/>

XAML Values

objectValue

Ein Objektelement, das den Wert der festzulegenden Eigenschaft angibt.

attributeValue

Eine Zeichenfolge, die den Attributwert der festzulegenden Eigenschaft angibt. Format und Auslegung der Zeichenfolge für den Attributwert richten sich nach der festzulegenden Eigenschaft.

extensionUsage

Einer von mehreren Erweiterungsmechanismen, die angeben, dass der Eigenschaftswert aus einem bestehenden Wert ermittelt werden soll. Allgemein handelt es sich dabei um StaticResource.

Eigenschaftswert

Typ: System.Object [.NET] | Platform::Object [C++]

Der Wert, der auf die Eigenschaft angewendet werden soll, die vom Setter angegeben wird.

Hinweise

Wie aus der XAML-Syntax ersichtlich wird, gibt es viele Möglichkeiten, um Value für Setter in XAML anzugeben:

  • Als Attribut mithilfe eines Zeichenfolgenwerts. Ein solcher Zeichenfolgenwert kann in einfachen Fällen wie dem Festlegen von numerischen Werten, benannten Werten aus einer Enumeration oder einem URI (Uniform Resource Identifier) implizit zu einem eigenschaftenspezifischen Typ konvertiert werden.
  • Als ein vollständig neues Objekt, das in der XAML-Objektelementsyntax deklariert wird, und das Objektelement wird innerhalb der Eigenschaftselementverwendung geschachtelt.
  • Als ein Attribut, das eine Verwendung der StaticResource-Markuperweiterung in Anführungszeichen hat.

In der Regel gibt der Werttyp der Eigenschaft vor, welche Syntax geeignet ist. Weitere Informationen zur XAML-Verwendung finden Sie unter XAML-Übersicht oder Grundlegende XAML-Syntax. Sie können die Attributsyntax für die meisten XAML-Benutzeroberflächen-Eigenschaften verwenden, und Benutzeroberflächen-Eigenschaften, die speziell eine Eigenschaftselementverwendung oder einen Ressourcenverweis erfordern, sind seltener. Eine Verwendung von StaticResource kann auch für Zeichenfolgen oder numerische Werte geeignet sein, wenn diese Werte von mehr als einem Format oder mehr als einer Eigenschaft verwendet werden.

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.

Stile und Vorlagen

Sie können Setter in einem Style verwenden, um Werte auf eine beliebige Abhängigkeitseigenschaft anzuwenden. Mit dem Setter für die Template-Eigenschaft einer von Control abgeleiteten Klasse wird jedoch der Großteil des XAML-Markups in einem typischen Style gebildet. Der Value für einen Setter mit Property="Template" wird fast immer als ein Eigenschaftenelement angegeben, das ein ControlTemplate-Objektelement enthält.

Wenn Style verwendet wird, um eine Steuerelementvorlage zu definieren, sollten der TargetType des Style-Elements und der TargetType des ControlTemplate-Elements für den zugehörigen Control.Template-Setter immer den gleichen Wert verwenden.

Der Setter Template definiert die Basisvorlage-Benutzeroberflächendefinition für eine Steuerelementinstanz, in der diese Vorlage angewendet wird. Außerdem sind die visuellen Zustände für ein Steuerelement und andere zustandsbasierte UI-Definitionen wie Standarddesignübergänge enthalten. Für ein komplexes Steuerelement wie ListBox kann die darin enthaltene Standardvorlage Style und ControlTemplate Hunderte von XAML-Zeilen umfassen. Weitere Informationen zur Rolle von Style in den Steuervorlagenenszenarien, finden Sie unter Schnellstart: Steuerelementvorlagen.

Migrationshinweise

  • Windows Presentation Foundation (WPF) und Microsoft Silverlight unterstützten die Möglichkeit, einen Binding-Ausdruck zu verwenden, um den Value für Setter in einem Style bereitzustellen. Die Windows-Runtime unterstützt keine Binding-Verwendung für Setter.Value (Binding wird nicht ausgewertet und der Setter hat keine Auswirkungen. Sie erhalten keine Fehler, aber auch nicht das gewünschte Ergebnis). Wenn Sie XAML-Stile von WPF oder vom Silverlight-XAML konvertieren, ersetzen Sie alle Binding-Ausdrucksverwendungen mit Zeichenfolgen oder Objekten, die Werte festlegen, oder gestalten Sie die Werte als freigegebene StaticResource-Werte um, und nicht als erhaltene Binding-Werte.

Beispiele

In diesem Beispiel werden zwei Stile erstellt: einer für einen TextBlock und einer für ein TextBox. Jeder Stil wird auf zwei Instanzen eines Steuerelements angewendet, um die einheitliche Darstellung von TextBlock und TextBox zu gewährleisten. Durch den Stil für den TextBlock werden die Eigenschaften Foreground, FontSize und VerticalAlignment festgelegt. Durch den Stil für den TextBox werden die Eigenschaften Width, Height, Margin, Background und FontSize festgelegt. Beachten Sie, dass der Setter für den Background des TextBox die Eigenschaftenelementsyntax für den Wert verwendet, damit für den Background ein LinearGradientBrush verwendet werden kann.


<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>


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:
© 2014 Microsoft