Domanda

Sto avendo difficoltà che si estende uno dei miei stili che ho definito nel dizionario di Windows. Da solo, a quanto pare per applicare lo stile ai miei comandi come previsto. Tuttavia, se cercare di estendere lo stile in uno dei miei usercontrols, utilizzando la proprietà BasedOn, sostituisce semplicemente quello principale e tutti gli stili di base scomparire. Ecco un esempio:

In un dizionario risorse, di nome dict1.xaml:

<Style TargetType="{x:Type Button}">
    <Setter Property="Background" Value="Pink"/>
</Style>  

Nel window.xaml principale:

<Window.Resources>
    <ResourceDictionary Source="dict1.xaml"/>
</Window.Resources>

In un controllo utente denominato userControl1.xaml:

<UserControl.Resources>
    <Style  BasedOn="{StaticResource {x:Type Button}}" 
            TargetType="{x:Type Button}">
        <Setter Property="FontWeight" Value="Bold"/>
    </Style>
</UserControl.Resources>

Lo stile nel controllo utente ignora semplicemente l'uno nel dizionario risorse e il tipo di carattere è in grassetto. Se rimuovo lo stile nel controllo utente, lo stile nei calci dizionario in e lo sfondo diventa rosa. Li voglio entrambi.

Tutte le idee che cosa sto facendo male qui?

Grazie.

È stato utile?

Soluzione

Si sia bisogno di aggiungere il dizionario per le risorse UserControl, o aggiungerlo alle risorse App.xaml.

Così com'è, l'UserControl non può risolvere che StaticResource -. È nel campo di applicazione della UserControl, non la finestra, se questo ha un senso

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