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

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

Este exemplo mostra como usar instruções Setter 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 instruções Setter 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 instruções Setter para definir um valor de propriedade dentro de 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 no VisualState, a propriedade Target 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. A partir do 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 instância do Setter usando código, não poderá alterar o valor de qualquer propriedade de uma instância do Setter se o valor da propriedade IsSealed em um Style pai for verdadeiro. Isso também é relatado pela propriedade IsSealed em um Setter individual. 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. Tentar alterar um Setter selado 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 para um Setter em um Estilo. O Windows Runtime não dá suporte a um uso de Associação para Setter.Value (a Associação não será avaliada e o Setter não terá efeito, você não receberá erros, mas também não obterá o resultado desejado). Quando você converte estilos XAML de Windows Presentation Foundation (WPF) ou XAML do Microsoft Silverlight, substitua qualquer uso de expressão binding 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 de valores obtidos por associação.

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

Obtém o CoreDispatcher ao qual esse objeto está associado. O CoreDispatcher representa uma instalação que pode acessar 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