Setter Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Aplica um valor a uma propriedade em um Style ou um 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 .../>
- Herança
- Atributos
Exemplos
Este exemplo mostra como usar Setter
instruções em um estilo para 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>
Este exemplo mostra como usar várias Setter
instruções dentro da propriedade VisualState.Setters para aplicar alterações de valor de propriedade discretas em vários elementos (sem animações) quando um VisualState é aplicado.
<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>
Você também pode aplicar setters a valores de propriedade anexados, especificando o nome da propriedade anexada no AttachedPropertyProvider. Formulário PropertyName . Por exemplo, para usar um Setter para a propriedade anexada Canvas.Left, use esse XAML.
<Setter Property="Canvas.Left" Value="100"/>
Para atualizar um valor de uma propriedade anexada usando Target
, coloque o caminho da propriedade anexada dentro de parênteses. Este exemplo mostra como atualizar o RelativePanel.AlignRightWithPanel
valor em um elemento com o nome 'TitleTextBlock'.
<RelativePanel>
<TextBlock x:Name="TitleTextBlock" Text="Title"/>
</RelativePanel>
...
<Setter Target="TitleTextBlock.(RelativePanel.AlignRightWithPanel)" Value="True"/>
Comentários
Use Setter
instruções para definir um valor de propriedade em um Style ou um VisualState.
A propriedade Setter.Target pode ser usada em um Style ou um VisualState, mas de maneiras diferentes. Quando usada em um Style
, a propriedade que precisa ser modificada pode ser especificada diretamente. Quando usada em VisualState
, a Target
propriedade deve receber um TargetPropertyPath (sintaxe pontilhada com um elemento de destino e uma propriedade explicitamente especificadas).
A propriedade Setter.Property só pode ser usada em um Style e não em um VisualState. Começando em Windows 10, você pode usar Setter.Target em todos os lugares em vez de Setter.Property
.
Você deve especificar o Valor e o Destino ou a Propriedade em um Setter
. Caso contrário, uma exceção é gerada (uma exceção de análise ou um erro de runtime, dependendo se o Setter é criado em XAML ou modificado no código).
Se você estiver acessando uma Setter
instância usando código, não poderá alterar o valor de nenhuma propriedade de uma Setter
instância se o valor da propriedade IsSealed em um estilo pai for true
. Isso também é relatado pela propriedade IsSealed em um indivíduo Setter
. O sistema define essas propriedades como true
quando o runtime aplica estilos aos elementos da interface do usuário e as exibe na interface do usuário. A tentativa de alterar um lacrado Setter
lança um erro de runtime.
Notas de migração
- Windows Presentation Foundation (WPF) e Microsoft Silverlight ofereceram suporte à capacidade de usar uma expressão Binding para fornecer o Valor de um
Setter
em um Estilo. O Windows Runtime não dá suporte a umBinding
uso para Setter.Value (oBinding
não será avaliado e oSetter
não terá efeito, você não receberá erros, mas também não obterá o resultado desejado). Ao converter estilos XAML do WPF ou do XAML do Microsoft Silverlight, substitua qualquerBinding
uso de expressão por cadeias de caracteres ou objetos que definem valores ou refatore os valores como valores de extensão de marcação compartilhados {StaticResource} em vezBinding
de valores obtidos.
Construtores
Setter() |
Inicializa uma nova instância da classe Setter sem propriedade ou valor inicial. |
Setter(DependencyProperty, Object) |
Inicializa uma nova instância da classe Setter com informações iniciais de Propriedade e Valor . |
Propriedades
Dispatcher |
Sempre retorna |
DispatcherQueue |
Obtém o ao |
IsSealed |
Obtém um valor que indica se este objeto está em um estado imutável. (Herdado de SetterBase) |
Property |
Obtém ou define a propriedade à qual aplicar o Valor . |
Target |
Obtém ou define o caminho de uma propriedade em um elemento de destino ao qual aplicar o Valor . |
Value |
Obtém ou define o valor a ser aplicado à propriedade especificada pelo Setter. |
Métodos
ClearValue(DependencyProperty) |
Limpa o valor local de uma propriedade de dependência. (Herdado de DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria nos casos em que uma animação não está ativa. (Herdado de DependencyObject) |
GetValue(DependencyProperty) |
Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject. (Herdado de DependencyObject) |
ReadLocalValue(DependencyProperty) |
Retorna o valor local de uma propriedade de dependência, se um valor local for definido. (Herdado de DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nesta instância dependencyObject . (Herdado de DependencyObject) |
SetValue(DependencyProperty, Object) |
Define o valor local de uma propriedade de dependência em um DependencyObject. (Herdado de DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback. (Herdado de DependencyObject) |