Compartir a través de


Setter Clase

Definición

Aplica un valor a una propiedad de un estilo o de un objeto VisualState.

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 los 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, usa este XAML.

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

Para actualizar un valor de una propiedad adjunta mediante Target, coloque la ruta de acceso de la 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 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 debe modificarse se puede especificar directamente. Cuando se usa en VisualState, la Target propiedad debe asignarse a 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 tanto el valor como la propiedad o el destino, en .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 Setter se crea en XAML o se modifica en el código).

Si accede 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 estilo primario es true. Esto también se notifica mediante la propiedad IsSealed en un individual 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.

Constructores

Nombre Description
Setter()

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

Setter(DependencyProperty, Object)

Inicializa una nueva instancia de la clase Setter con la información inicial propiedad y valor .

Propiedades

Nombre Description
Dispatcher

Siempre devuelve null en una aplicación de Windows App SDK. Use DispatcherQueue en su lugar.

(Heredado de DependencyObject)
DispatcherQueue

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

(Heredado de DependencyObject)
IsSealed

Obtiene un valor que indica si este objeto está 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 el establecedor.

Métodos

Nombre Description
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 llamando a RegisterPropertyChangedCallback.

(Heredado de DependencyObject)

Se aplica a

Consulte también