2009-12-13 4 views

Répondre

5

Si vous définissez votre style pour un contrôle sans attribut x: Key, il sera appliqué à toutes les instances de ce contrôle.

Essayez comme ceci:

<Window.Resources> 
    <Style TargetType="ScrollBar"> 
     <Setter Property="Background" Value="Red"/> 
    </Style> 
</Window.Resources> 
<Grid> 
    <TextBox Margin="24,12,0,0" VerticalScrollBarVisibility="Visible" AcceptsReturn="True" Height="28" VerticalAlignment="Top" HorizontalAlignment="Left" Width="89" /> 
    <ScrollBar Name="scroll" HorizontalAlignment="Right" /> 
</Grid> 

Ici vous pouvez voir que le style est défini pour le contrôle ScrollBar et ne pas avoir x: attribut clé définie de sorte qu'il s'applique à chaque instance la ScrollBar dans la Fenêtre. Comme ScrollBar de TextBox et ScrollBar nommé scroll aussi.

Espérons que cela aide!

0

Merci. Enfin, le problème a été résolu en mettant le style dans les Thèmes/generic.xaml et (en raison des contrôles personnalisés existants dans un autre assemblage avec les ressources respectives ils ont fusionné) en ajoutant ce qui suit à App.xaml ...

<Application.Resources> 
    <ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="Themes/Generic.xaml"/> 
     <ResourceDictionary Source="MyCtls/MyRes.xaml" /> 
    </ResourceDictionary> 
</Application.Resources> 

Le Le point clé est de fusionner le fichier Generic.xaml. De même, si le dictionnaire de ressources se trouve dans un autre assembly, il doit être référencé comme ...

<ResourceDictionary Source="pack://application:,,,/OtherAssembly;component/MyCtls/MyRes.xaml"/> 
Questions connexes