2010-10-12 4 views
1

J'ai trouvé le code suivant pour afficher l'élément sélectionné dans une vue arborescente lorsque le focus est parti, mais je n'arrive pas à déplacer le code vers App.xaml. UserControl pourrait l'utiliser.Comment appliquer un style global à une arborescence wpf dans App.xaml

Ce fait ce que je veux

<TreeView x:Name="trviewArchives" Width="141" Height="154" Canvas.Left="20" Canvas.Top="167" Background="{x:Null}" BorderBrush="#FF081827" BorderThickness="0"> 
      <TreeView.Resources> 
       <TreeViewItem x:Key="bold" FontWeight="Bold" /> 
       <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Peru"/> 
       <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/> 
       <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Peru"/> 
      </TreeView.Resources> 

Mais je ne peux pas comprendre comment faire un style hors de celui-ci. J'ai essayé ce qui suit, qui coutures syntaxiquement correct

  <Style x:Key="TreeStyle" TargetType="{x:Type TreeView}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="TreeViewItem"> 
         <TreeViewItem> 
          <Setter x:Name="bold" Property="FontWeight" Value="Bold" /> 
         </TreeViewItem> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

Et dans le usercontrol

<TreeView x:Name="trviewArchives" Width="141" Height="154" Canvas.Left="20" Canvas.Top="167" Background="{x:Null}" Style="{DynamicResource ResourceKey=TreeStyle}" 
        BorderBrush="#FF081827" BorderThickness="0" > 

À un moment donné le code UserControl reconnu le style, mais actuellement sa montrant « Treestyle des ressources n'a pas pu être résolu ".
Qu'est-ce que je fais de mal?
Ai-je besoin de définir TreeStyle depuis son App.xaml qui est un espace de noms (parent) différent? Une fois que je l'obtiens en utilisant le style, quelle est la syntaxe pour définir les autres propriétés?

Répondre

0

Le projet a été initialement configuré en tant que bibliothèque de classes. Quelque part dans le fichier de projet, je devine, il indique à WPF s'il faut regarder dans App.xaml, et si c'est une ClassLibrary, il n'y cherchera jamais, sauf si vous lui dites spécifiquement de regarder dans ce fichier (j'ai fusionné un dictionnaire cela semble fonctionner). J'ai compris cela quand je me suis souvenu que c'était auparavant une bibliothèque de classe, donc j'ai copié le code à un nouveau projet et tout était bon.

Questions connexes