Compartilhar via


Setter Classe

Definição

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
Object Platform::Object IInspectable DependencyObject SetterBase Setter
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 um Binding uso para Setter.Value (o Binding não será avaliado e o Setter 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 qualquer Binding 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 vez Bindingde 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 null em um aplicativo SDK do Aplicativo Windows. Em vez disso, use DispatcherQueue .

(Herdado de DependencyObject)
DispatcherQueue

Obtém o ao DispatcherQueue qual esse objeto está associado. O DispatcherQueue representa uma instalação que pode acessar o DependencyObject no thread da interface do usuário mesmo que o código seja iniciado por um thread que não seja da interface do usuário.

(Herdado de DependencyObject)
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)

Aplica-se a

Confira também