Pergunta

Eu tenho um controle de usuário do WPF definido em um conjunto de aplicativos. Estou tentando estilizar o controle do usuário com base em estilos em outra montagem (pele ou tema). Não quero o conjunto do tema/pele que contém o recurso com todos os estilos para fazer referência ao conjunto do aplicativo. Existe alguma maneira de fazer isso? Por exemplo

Assembléia de WPFApplication

MyuserControl.xaml <- controle do usuário do WPF

Assembléia de temas

Mystyles.xaml <- dicionário de recursos wpf

Presumo que posso usar

<Style x:Key="MyStyle">
    <Setter Property="Background" Value="Red" />
</Style>

no mystyles.xaml Recursos e use:

<l:MyUserControl Name="control" Style="{StaticResource MyStyle}" />

Em qualquer janela que use myuserControl.xaml no conjunto WPFAPplication

No entanto, eu preferiria direcionar o controle de usuário personalizado no mystyles.xaml ResourceStionary:

<Style TargetType="{x:Type l:MyUserControl}" x:Key="MyStyle">
        <Setter Property="Background" Value="Red" />
    </Style>

Isso é possível??

Foi útil?

Solução

Sim, você pode fazer isso. Verifique isso então post onde eu mostro como fazer isso programaticamente. Eu estava fazendo isso com o ControlTemplates, mas exatamente o mesmo se aplica aos estilos.

Para fazer isso declaradamente, pode ser mais simples, pode ser necessário mesclar programaticamente seus recursos, declarar os recursos de statics e nomes corretos em seu XAML e, em seguida, basta fazer referência ao estilo/modelo que você deseja.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top