Setter Clase

Definición

Aplica un valor a una propiedad en style ovisualState.

public ref class Setter sealed : SetterBase
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.ISetterFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Setter final : SetterBase
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.ISetterFactory, 65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class Setter final : SetterBase
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.ISetterFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Setter : SetterBase
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.ISetterFactory), 65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class Setter : SetterBase
Public NotInheritable Class Setter
Inherits SetterBase
<Setter .../>
Herencia
Object Platform::Object IInspectable DependencyObject SetterBase Setter
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

En este ejemplo se muestra cómo usar instrucciones Setter en un estilo para los elementos TextBlock .

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

En este ejemplo se muestra cómo usar varias instrucciones Setter dentro de la propiedad VisualState.Setters para aplicar cambios de valor de propiedad discretos en varios elementos (sin animaciones) cuando se aplica visualState .

<Page>
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup>
                <VisualState x:Name="NarrowState">
                    <VisualState.Setters>
                        <Setter Target="myPanel.Orientation" Value="Vertical"/>
                        <Setter Target="myPanel.Width" Value="380"/>
                        <Setter Target="myTextBlock.MaxLines" Value="3"/>
                    </VisualState.Setters>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>

        <StackPanel x:Name="myPanel" Orientation="Horizontal">
            <TextBlock x:Name="myTextBlock" MaxLines="5" Style="{ThemeResource BodyTextBlockStyle}"/>
        </StackPanel>
    </Grid>
</Page>

También puede aplicar establecedores a valores de propiedad adjuntos especificando el nombre de propiedad adjunta en AttachedPropertyProvider. Formulario PropertyName . Por ejemplo, para usar un establecedor para la propiedad adjunta Canvas.Left, use este XAML.

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

Para actualizar un valor de una propiedad adjunta mediante Target, coloque la ruta de acceso de propiedad adjunta entre paréntesis. En este ejemplo se muestra cómo actualizar el RelativePanel.AlignRightWithPanel valor en un elemento con el nombre "TitleTextBlock".

<RelativePanel>
    <TextBlock x:Name="TitleTextBlock" Text="Title"/>
</RelativePanel>

...

<Setter Target="TitleTextBlock.(RelativePanel.AlignRightWithPanel)" Value="True"/>

Comentarios

Use instrucciones Setter para establecer un valor de propiedad dentro de style o visualState.

La propiedad Setter.Target se puede usar en un estilo o en visualState, pero de maneras diferentes. Cuando se usa en un estilo, la propiedad que se debe modificar se puede especificar directamente. Cuando se usa en VisualState, la propiedad Target debe tener una propiedad TargetPropertyPath (sintaxis de puntos con un elemento de destino y una propiedad especificadas explícitamente).

La propiedad Setter.Property solo se puede usar en un estilo y no en visualState. A partir de Windows 10, puedes usar Setter.Target en todas partes en lugar de Setter.Property.

Debe especificar el valor y el destino o la propiedad en un establecedor. De lo contrario, se produce una excepción (ya sea una excepción de análisis o un error en tiempo de ejecución, en función de si el establecedor se crea en XAML o se modifica en el código).

Si tiene acceso a una instancia de Setter mediante código, no podrá cambiar el valor de ninguna propiedad de una instancia de Setter si el valor de la propiedad IsSealed en un style primario es true. Esto también lo notifica la propiedad IsSealed en un establecedor individual. El sistema establece estas propiedades en true cuando el tiempo de ejecución aplica estilos a los elementos de la interfaz de usuario y los muestra en la interfaz de usuario. Si se intenta cambiar un establecedor sellado, se produce un error en tiempo de ejecución.

Notas de migración

  • Windows Presentation Foundation (WPF) y Microsoft Silverlight admitía la capacidad de usar una expresión binding para proporcionar el valor de un establecedor en un estilo. El Windows Runtime no admite un uso de enlace para Setter.Value(el enlace no se evaluará y el establecedor no tiene ningún efecto, no obtendrá errores, pero tampoco obtendrá el resultado deseado). Al convertir estilos XAML de Windows Presentation Foundation (WPF) o XAML de Microsoft Silverlight, reemplace los usos de expresiones binding por cadenas u objetos que establecen valores o refactorice los valores como valores de extensión de marcado {StaticResource} compartidos en lugar de valores obtenidos por Binding.

Constructores

Setter()

Inicializa una nueva instancia de la clase Setter sin propiedad o valor iniciales.

Setter(DependencyProperty, Object)

Inicializa una nueva instancia de la clase Setter con la información inicial property y value .

Propiedades

Dispatcher

Obtiene el CoreDispatcher al que está asociado este objeto. CoreDispatcher representa una instalación que puede acceder a DependencyObject en el subproceso de la interfaz de usuario, incluso si un subproceso que no es de interfaz de usuario inicia el código.

(Heredado de DependencyObject)
IsSealed

Obtiene un valor que indica si este objeto se encuentra en un estado inmutable.

(Heredado de SetterBase)
Property

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

Target

Obtiene o establece la ruta de acceso de una propiedad en un elemento de destino al que se va a aplicar el valor .

Value

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

Métodos

ClearValue(DependencyProperty)

Borra el valor local de una propiedad de dependencia.

(Heredado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Devuelve cualquier valor base establecido para una propiedad de dependencia, que se aplicaría en los casos en los que una animación no está activa.

(Heredado de DependencyObject)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia de dependencyObject.

(Heredado de DependencyObject)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si se establece un valor local.

(Heredado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una función de notificación para escuchar los cambios en una dependencyProperty específica en esta instancia de DependencyObject .

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia en dependencyObject.

(Heredado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela una notificación de cambio registrada anteriormente mediante una llamada a RegisterPropertyChangedCallback.

(Heredado de DependencyObject)

Se aplica a

Consulte también