FrameworkElement.Style Propriedade

Definição

Obtém ou define um Estilo de instância que é aplicado a esse objeto durante o layout e a renderização.

public:
 property Style ^ Style { Style ^ get(); void set(Style ^ value); };
Style Style();

void Style(Style value);
public Style Style { get; set; }
var style = frameworkElement.style;
frameworkElement.style = style;
Public Property Style As Style
<frameworkElement Style="{StaticResource styleResourceKey}"/>

Valor da propriedade

O estilo aplicado para o objeto, se presente; caso contrário, nulo. O padrão para um FrameworkElement construído por padrão é nulo.

Comentários

Definir a propriedade Style diretamente não é a maneira mais comum de estilizar a aparência de um elemento de interface do usuário. Em vez disso, você influencia a aparência de um elemento de interface do usuário por meio de uma destas técnicas:

  • Muitas vezes, você define propriedades de interface do usuário individuais de um elemento de interface do usuário como atributos em XAML. FrameworkElement.Style aplica-se apenas ao elemento atual e qualquer valor de um StyleFrameworkElement.Style é substituído por um valor de propriedade local, portanto, definir o valor local é mais direto e mais previsível. Para obter mais informações sobre como um valor style e um valor de propriedade local se relacionam, consulte Visão geral das propriedades de dependência.
  • Os autores de controle normalmente gravam um controle que é templatable, mas também vem com um modelo padrão. Seu aplicativo pode usar o controle e alterar sua aparência fornecendo um novo ControlTemplate, que faz parte de um Estilo definido em recursos. Esse estilo normalmente é aplicado usando o recurso de estilo implícito , não definindo Estilo. Para obter mais informações, consulte Controles de estilo.
  • Os autores de controle também expõem propriedades que fazem referência a partes de um controle que podem ter estilos ou valores aplicados apenas a essa parte, para que você não precise retemplar totalmente o controle. Aqui você está definindo uma propriedade mais específica, não FrameworkElement.Style.
  • O modelo de estado visual frequentemente redefine o estilo de controle em tempo de execução em resposta a alterações em estados que se manifestam visualmente para os usuários. Por exemplo, os modelos de controle normalmente têm um estado "Focado" que adiciona um indicador de foco visual à aparência do controle para que um usuário de teclado possa ver qual elemento na interface do usuário tem o foco atual do teclado. Para obter mais informações sobre o conceito de estado visual, consulte Início Rápido: Modelos de controle.

Você pode alterar os valores de propriedades individuais que foram definidas em um estilo. Por exemplo, você pode definir a propriedade Template em tempo de execução mesmo que essa propriedade tenha sido definida por um estilo. Ou você pode adicionar setters à coleção em Setters. No entanto, assim que esse estilo for colocado em uso por um objeto carregado, o Style deverá ser considerado selado. Você pode detectar esse estado verificando o valor de IsSealed para o Style. Um estilo é considerado em uso assim que é referenciado por um objeto carregado que está conectado à árvore de objetos de uma página exibida da interface do usuário. Um Style e seus Setters também podem ser considerados selados quando o objeto que usa esse estilo gera seu evento Loaded . Tentar alterar uma propriedade individual de um estilo em uso (como uma propriedade na coleção Setters ) gera uma exceção.

Classes derivadas de Control têm um ponto de entrada adicional que é útil para controlar os autores em relação ao estilo e ao aplicativo de modelo. FrameworkElement define o retorno de chamada virtual OnApplyTemplate que é invocado antes de Loaded. Classes derivadas de Control podem substituir esse retorno de chamada para ajustar os valores de propriedade que foram definidos por modelos antes que o estilo esteja em uso.

Se consultada em tempo de execução, a propriedade Style não retorna estilos provenientes de um modelo aplicado ou estados visuais ativos. Ele retorna apenas estilos que foram explicitamente definidos pela propriedade Style. Além disso, ele não retorna estilos implícitos.

Aplica-se a