propiedad Value
Collapse the table of content
Expand the table of content

Setter.Value Property

Obtiene o establece el valor que se va aplicar a la propiedad especificada por Setter.

Sintaxis


public object Value { get; set; }


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


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

XAML Values

objectValue

Elemento de objeto que especifica el valor de la propiedad que se está estableciendo.

attributeValue

Cadena que especifica el valor de atributo de la propiedad que se está estableciendo. El formato y la interpretación de la cadena proporcionados para el valor de atributo dependen de la propiedad que se establece.

extensionUsage

Uno entre varios posibles mecanismos de extensión que especifican el valor de propiedad que se va a obtener de un valor existente. La más común de estas es StaticResource.

Valor de propiedades

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

Valor que se va aplicar a la propiedad especificada por Setter.

Comentarios

Como puede verse en la sintaxis XAML, existen varias formas de especificar la propiedad Value para la clase Setter en XAML:

  • Como atributo, utilizando un valor de cadena. Este tipo de valor de cadena se puede convertir implícitamente en un tipo específico de la propiedad para los casos sencillos como definir valores numéricos, valores con nombre de una enumeración o un identificador uniforme de recursos (URI).
  • Como nuevo objeto que se declara en sintaxis de elemento de objeto XAML y como elemento de objeto anidado en el uso de un elemento de propiedad.
  • Como atributo que tiene un uso de Extensión de marcado de StaticResource entre las comillas.

Normalmente el tipo de valor de la propiedad indica qué sintaxis es adecuada. Para obtener más información sobre usos de XAML, vea Información general sobre XAML o Sintaxis básica de XAML. Puede utilizar la sintaxis de atributo para la mayoría de las propiedades de interfaz de usuario XAML, y las propiedades de interfaz de usuario que requieren específicamente el uso de un elemento de propiedad o una referencia de recurso son menos comunes. Un uso de StaticResource puede ser adecuado incluso para cadenas o valores numéricos si esos valores están compartidos por más de un estilo o propiedad.

Debe especificar las propiedades Property y Value en un Setter. De lo contrario, se produce una excepción (una excepción de análisis o un error en tiempo de ejecución, dependiendo de si el objeto Setter se crea en XAML o se modifica en el código).

Si tiene acceso a una instancia de Setter mediante código, no puede cambiar el valor de ninguna propiedad de una instancia de Setter si el valor de la propiedad IsSealed de un objeto Style primario es true. Esto también lo notifica la propiedad IsSealed en un Setter individual. El sistema establece estas propiedades en true cuando el runtime aplica estilos a los elementos de la interfaz de usuario y los muestra en ella. Se producirá un error de tiempo de ejecución si intenta cambiar una clase Setter sellada.

Estilos y plantillas

Puede utilizar Setter en Style para aplicar valores a cualquier propiedad de dependencia. Sin embargo, la clase Setter para la propiedad Template de una clase derivada de Control es la que constituye a la mayor parte del marcado XAML en las clases Style típicas. Value para Setter con Property="Template" se especifica casi siempre como un elemento de propiedad que contiene un elemento de objeto ControlTemplate.

Cuando se utiliza Style para definir una plantilla de control, el TargetType del elemento Style y el TargetType del elemento ControlTemplate para su establecedor Control.Template siempre deben utilizar el mismo valor.

El establecedor Template define la definición de UI de plantilla básica para una instancia del control donde se aplica esa plantilla. También contiene los estados visuales de un control, y otras definiciones de interfaz de usuario basadas en el estado, como las transiciones del tema predeterminado. Para un control complejo como, por ejemplo ListBox, la plantilla predeterminada de la clase Style y ControlTemplate puede contener cientos de líneas de XAML. Para obtener más información sobre el rol de Style en escenarios de plantillas de control, vea Inicio rápido: plantillas de control.

Notas sobre la migración

  • Windows Presentation Foundation (WPF) y Microsoft Silverlight admitían la posibilidad de utilizar una expresión Binding para proporcionar el Value para Setter en Style. Windows en tiempo de ejecución no es compatible con el uso de Binding para Setter.Value (el objeto Binding no se evaluará y Setter no tiene ningún efecto; no obtendrá errores, pero tampoco obtendrá el resultado deseado). Al convertir estilos XAML de WPF o Silverlight XAML, reemplace cualquier uso de expresiones Binding con cadenas u objetos que establecen valores, o refactorice los valores como valores StaticResource compartidos en lugar de valores obtenidos de Binding.

Ejemplos

Este ejemplo crea dos estilos: uno para TextBlock y el otro para TextBox. Cada estilo se aplica a dos instancias de un control para crear una apariencia uniforme para cada TextBlock y TextBox. El estilo de TextBlock establece las propiedades Foreground, FontSize y VerticalAlignment. El estilo de TextBox establece las propiedades Width, Height, Margin, Background y FontSize. Observe que el establecedor de Background de TextBox utiliza la sintaxis de elementos de propiedad para el valor de modo que Background puede utilizar LinearGradientBrush.


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


Requisitos

Cliente mínimo admitido

Windows 8

Servidor mínimo admitido

Windows Server 2012

Espacio de nombres

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

Metadatos

Windows.winmd

Vea también

Setter

 

 

Mostrar:
© 2016 Microsoft