Share via


Setter Clase

Definición

Aplica un valor a una propiedad en style ovisualState.

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

Ejemplos

En este ejemplo se muestra cómo usar Setter instrucciones 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 Setter instrucciones 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 Setter instrucciones para establecer un valor de propiedad dentro de un Style o visualState.

La propiedad Setter.Target se puede usar en un estilo o en visualState, pero de maneras diferentes. Cuando se usa en , Stylela propiedad que se debe modificar se puede especificar directamente. Cuando se usa en VisualState, se Target debe proporcionar 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, puede usar Setter.Target en todas partes en lugar de Setter.Property.

Debe especificar el valor y el destino o la propiedad , en un .Setter 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 Setter instancia mediante código, no puede cambiar el valor de ninguna propiedad de una Setter instancia si el valor de la propiedad IsSealed en un style primario es true. Esto también se notifica mediante la propiedad IsSealed en un individuo Setter. 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 sellado Setter , 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 en Setter un estilo. El Windows Runtime no admite un Binding uso de Setter.Value (el Binding no se evaluará y el Setter no tiene ningún efecto, no obtendrá errores, pero tampoco obtendrá el resultado deseado). Al convertir estilos XAML de WPF o XAML de Microsoft Silverlight, reemplace los Binding usos de expresiones por cadenas u objetos que establecen valores, o refactorice los valores como valores de extensión de marcado {StaticResource} compartidos en lugar de Bindingvalores obtenidos.

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

Siempre devuelve null en una aplicación de SDK de Aplicaciones para Windows. En su lugar, use DispatcherQueue .

(Heredado de DependencyObject)
DispatcherQueue

Obtiene el objeto DispatcherQueue al que está asociado este objeto. DispatcherQueue representa una instalación que puede tener acceso a DependencyObject en el subproceso de 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