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, null. O padrão para um FrameworkElement construído por padrão é null.

Comentários

Definir a Style propriedade diretamente não é a maneira mais comum de definir o estilo da 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:

  • Geralmente, 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 FrameworkElement.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 escrevem 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 Style. 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 "Focalizado" 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 Modelos de controle XAML.

Você pode alterar os valores de propriedades individuais que foram definidas dentro de 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 é colocado em uso por um objeto carregado, o Style deve ser considerado lacrado. 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 seu Setters também podem ser considerados lacrados 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 Setters coleção) 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 Style propriedade não retorna estilos provenientes de um modelo aplicado ou estados visuais ativos. Ele retorna apenas estilos que foram definidos explicitamente pela Style propriedade . Além disso, ele não retorna estilos implícitos.

Aplica-se a