Setter Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 , Style
la 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 unBinding
uso de Setter.Value (elBinding
no se evaluará y elSetter
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 losBinding
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 deBinding
valores 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 |
DispatcherQueue |
Obtiene el objeto |
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) |