Saltar al contenido

Establecer el estilo de un UserControl de WPF

Solución:

Puede establecer directamente el estilo de UserControl de esta manera:

<UserControl x:Class="MyNamespace.MyControl" xmlns:local="MyNamespace" ...>
    <UserControl.Style>
        <Style>
            <Setter Property="local:MyControl.MyProperty" Value="..."/>
            ...
        </Style>
    </UserControl.Style>
</UserControl>

o así:

<UserControl x:Class="MyNamespace.MyControl" xmlns:local="MyNamespace" ...>
    <UserControl.Style>
        <Style TargetType="local:MyControl">
            <Setter Property="MyProperty" Value="..."/>
            ...
        </Style>
    </UserControl.Style>
</UserControl>

Un estilo predeterminado en los recursos de UserControl también debería funcionar:

<UserControl x:Class="MyNamespace.MyControl" xmlns:local="MyNamespace" ...>
    <UserControl.Resources>
        <Style TargetType="local:MyControl">
            <Setter Property="MyProperty" Value="..."/>
            ...
        </Style>
    </UserControl.Resources>
</UserControl>

Necesitas quitar el x:Key de su estilo definido para que se pueda aplicar universalmente a todos los controles del mismo tipo que lo que se define en el TargetType.

Para citar de MSDN para Propiedad Style.TargetType:

Establecer la propiedad TargetType en el tipo TextBlock sin establecer una x: Key establece implícitamente la x: Key en {x: Type TextBlock}. Esto también significa que si le das la […] Aplicar estilo a un valor x: Key de cualquier otro valor que no sea {x: Type TextBlock}, el estilo no se aplicaría a todos los elementos TextBlock automáticamente. En su lugar, debe aplicar el estilo a los elementos TextBlock explícitamente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *