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 de un frameworkElement construido de forma predeterminada es null.

Comentarios

Establecer la Style propiedad 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 mediante una de las siguientes técnicas:

  • A menudo se establecen propiedades de interfaz de usuario individuales de un elemento de interfaz de usuario como atributos en XAML. FrameworkElement.Style solo se aplica al elemento actual y cualquier valor de un FrameworkElement.Style se sobrescribe mediante un valor de propiedad local, por lo que establecer el valor local es más directo y predecible. Para obtener más información sobre cómo se relaciona un valor de estilo y un valor de propiedad local, consulta Información general sobre las propiedades de dependencia.
  • Los autores de controles suelen escribir un control que es templatable, pero que también incluye 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 solo esa parte, por lo que no es necesario volver a modificar totalmente 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 sí mismos 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 del teclado pueda ver qué elemento de la interfaz de usuario tiene el foco del teclado actual. Para obtener más información sobre el concepto de estado visual, consulta Plantillas de control XAML.

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 aunque esta propiedad se haya establecido mediante 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 IsSealed para .Style Se considera que un estilo está en uso en cuanto se hace referencia a él mediante un objeto cargado que está conectado al árbol de objetos de una página mostrada de la interfaz de usuario. Y Style también Setters 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 Setters colección), 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 Style propiedad no devuelve estilos que proceden de una plantilla aplicada o estados visuales activos. Solo devuelve estilos establecidos explícitamente por la Style propiedad . Además, no devuelve estilos implícitos.

Se aplica a