Domanda

Ho un controllo utente WPF definito in un gruppo di applicazione. Sto cercando di stile il controllo utente sulla base di stili in un altro assembly (pelle o tema). Non voglio che il gruppo tema / pelle che contiene la ResourceDictionary con tutti gli stili per fare riferimento assembly dell'applicazione. C'è un modo di fare questo? Per es.

Assemblea WPFApplication

MyUserControl.xaml <- controllo utente WPF

Assemblea tema

MyStyles.xaml <- dizionario risorse WPF

Presumo che posso usare

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

nel ResourceDictionary MyStyles.xaml, e l'uso:

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

in qualsiasi finestra che utilizza MyUserControl.xaml nell'assemblea WPFApplication

Tuttavia, io preferirei di indirizzare il controllo utente personalizzato nel ResourceDictionary MyStyles.xaml:

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

Questo è possibile ??

È stato utile?

Soluzione

Sì, è possibile farlo. Controllare questo SO inviare dove mostro come fare a livello di codice. Stavo facendo con ControlTemplate, ma la stessa identica cosa vale per gli stili pure.

Per farlo in modo dichiarativo può essere più semplice, potrebbe essere necessario unire i vostri programmazione resourcedictionaries, dichiarare le StaticResources destra e spazi dei nomi nel vostro XAML, e poi basta fare riferimento allo stile / modello che si desidera.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top