Compartir a través de


FrameworkElement.Style Propiedad

Definición

Obtiene o establece un estilo de instancia que se aplica a este objeto durante el diseño y la representación.

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 de propiedad

Estilo aplicado para el objeto, si está presente; de lo contrario, null. El valor predeterminado para un FrameworkElement construido de forma predeterminada es NULL.

Comentarios

Establecer la propiedad Style directamente no es la forma más común de aplicar estilo a la apariencia de un elemento de interfaz de usuario. En su lugar, se influye en la apariencia de un elemento de la interfaz de usuario a través de una de las siguientes técnicas:

  • A menudo estableces propiedades individuales de la interfaz de usuario de un elemento de interfaz de usuario como atributos en XAML. FrameworkElement.Style solo se aplica al elemento actual y cualquier valor de StyleFrameworkElement.Style se sobrescribe mediante un valor de propiedad local, por lo que establecer el valor local es más directo y más predecible. Para obtener más información sobre cómo se relaciona un valor de estilo y un valor de propiedad local, consulte Información general sobre las propiedades de dependencia.
  • Los autores de controles suelen escribir un control que es templatable, pero también viene con una plantilla predeterminada. La aplicación puede usar el control y cambiar su apariencia proporcionando un nuevo ControlTemplate, que forma parte de un estilo definido en los recursos. Este estilo se suele aplicar mediante la característica de estilo implícito , no estableciendo Style. Para obtener más información, consulta Controles de estilo.
  • Los autores de controles también exponen propiedades que hacen referencia a partes de un control que pueden tener estilos o valores aplicados a esa parte, por lo que no es necesario volver a cambiar completamente el control. Aquí va a establecer una propiedad más específica, no FrameworkElement.Style.
  • El modelo de estado visual restablece con frecuencia el estilo de control en tiempo de ejecución en respuesta a los cambios en los estados que se manifiestan a los usuarios visualmente. Por ejemplo, las plantillas de control suelen tener un estado "Centrado" que agrega un indicador de foco visual a la apariencia del control para que un usuario de teclado pueda ver qué elemento de la interfaz de usuario tiene el foco de teclado actual. Para obtener más información sobre el concepto de estado visual, consulte Inicio rápido: Plantillas de control.

Puede cambiar los valores de las propiedades individuales que se han establecido dentro de un estilo. Por ejemplo, puede establecer la propiedad Template en tiempo de ejecución incluso si esta propiedad se ha establecido por un estilo. O bien, puede agregar establecedores a la colección en Establecedores. Sin embargo, en cuanto un objeto cargado coloca ese estilo en uso, el estilo debe considerarse sellado. Para detectar este estado, compruebe el valor de IsSealedpara style. Se considera que un estilo está en uso en cuanto se hace referencia a él por un objeto cargado que está conectado al árbol de objetos de una página mostrada de la interfaz de usuario. Un estilo y sus establecedores también se pueden considerar sellados cuando el objeto que usa ese estilo genera su evento Loaded . Si se intenta cambiar una propiedad individual de un estilo en uso (como una propiedad de la colección Setters ), se produce una excepción.

Las clases derivadas de Control tienen un punto de entrada adicional que resulta útil para controlar a los autores en lo que respecta a la aplicación de estilo y plantilla. FrameworkElement define la devolución de llamada virtual OnApplyTemplate que se invoca antes de Loaded. Las clases derivadas de Control pueden invalidar esta devolución de llamada para ajustar los valores de propiedad establecidos por plantillas antes de que el estilo esté en uso.

Si se consulta en tiempo de ejecución, la propiedad Style no devuelve estilos que proceden de una plantilla aplicada o estados visuales activos. Solo devuelve estilos establecidos explícitamente por la propiedad Style. Además, no devuelve estilos implícitos.

Se aplica a