2011-04-21 56 views

回答

0
  1. 移動圖像資源段,並設置X:共享= 「假」:

    <Window.Resources> 
    <Image Source="links.png" x:Key="imgLinks" x:Shared="False"/> 
    

  2. 使用它的模板:<StaticResource ResourceKey="imgLinks"/>

1

如果你想爲每個節點提供獨特的圖像,您可以執行如下操作:

<TreeView> 
     <TreeViewItem> 
      <TreeViewItem.Header> 
       <Image Source="/WpfApplication2;component/folder.png" Height="25" Width="25"/> 
      </TreeViewItem.Header> 
     </TreeViewItem> 
     <TreeViewItem> 
      <TreeViewItem.Header> 
       <Image Source="/WpfApplication2;component/folder1.png" Height="25" Width="25"/> 
      </TreeViewItem.Header> 
     </TreeViewItem> 
     <TreeViewItem> 
      <TreeViewItem.Header> 
       <Image Source="/WpfApplication2;component/folder2.png" Height="25" Width="25"/> 
      </TreeViewItem.Header> 
     </TreeViewItem> 
     <TreeViewItem> 
      <TreeViewItem.Header> 
       <Image Source="/WpfApplication2;component/folder3.png" Height="25" Width="25"/> 
      </TreeViewItem.Header> 
     </TreeViewItem> 
    </TreeView> 

,或者,如果你想爲每一個節點相同的圖像,你可以做這樣的事情:

<Window.Resources> 
    <Image Source="/WpfApplication2;component/folder.png" Height="25" Width="25" x:Key="FolderIcon" x:Shared="false"/> 
</Window.Resources> 
<Grid> 
    <TreeView> 
     <TreeViewItem> 
      <TreeViewItem.Header> 
       <StaticResourceExtension ResourceKey="FolderIcon"/> 
      </TreeViewItem.Header> 
     </TreeViewItem> 
     <TreeViewItem> 
      <TreeViewItem.Header> 
       <StaticResourceExtension ResourceKey="FolderIcon"/> 
      </TreeViewItem.Header> 
     </TreeViewItem> 
     <TreeViewItem> 
      <TreeViewItem.Header> 
       <StaticResourceExtension ResourceKey="FolderIcon"/> 
      </TreeViewItem.Header> 
     </TreeViewItem> 
     <TreeViewItem> 
      <TreeViewItem.Header> 
       <StaticResourceExtension ResourceKey="FolderIcon"/> 
      </TreeViewItem.Header> 
     </TreeViewItem> 
    </TreeView> 
</Grid> 

希望這有助於。

UPDATE回答以下問題:「我怎樣才能改變圖像/圖標上點擊/擴展節點」

這裏是一個快速和骯髒的解決方案。

的XAML:

<Window.Resources> 
    <Image Source="/WpfApplication2;component/folder.png" Height="25" Width="25" x:Key="FolderIcon" x:Shared="false"/> 
    <Image Source="/WpfApplication2;component/folderOpened.jpg" Height="25" Width="25" x:Key="FolderOpenIcon" x:Shared="false"/> 
</Window.Resources> 
<Grid> 
    <TreeView> 
     <TreeViewItem PreviewMouseLeftButtonDown="itemExpanded" Name="treeViewItem"> 
      <TreeViewItem.Header> 
       <StaticResourceExtension ResourceKey="FolderIcon"/> 
      </TreeViewItem.Header> 
      <TreeViewItem> 
       <TreeViewItem/> 
      </TreeViewItem> 
     </TreeViewItem> 
    </TreeView> 
</Grid> 

C#/代碼隱藏

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    private void itemExpanded(object sender, RoutedEventArgs e) 
    { 
     if (treeViewItem.IsExpanded) 
     { 
      treeViewItem.Header = FindResource("FolderIcon"); 
     } 
     else 
     { 
      treeViewItem.Header = FindResource("FolderOpenIcon"); 
     }   
    } 
} 

您還可以在此使用 「展開」 事件以及完成。如果你想消除「代碼隱藏」,你也可以使用命令或轉換器來做到這一點。

+0

好的非常感謝你的解決方案..但我有一個更多的擔憂..我可以改變圖像/圖標點擊/展開節點..這是可能的..例如..我有一個文件夾圖標首先在樹節點處。現在,當我單擊節點或展開它時,圖像應該更改爲其他圖標。很好地幫助我解決此問題。 – 2011-04-27 09:10:50

+0

已更新w /解決方案 – 2011-04-27 20:58:06