2015-11-02 97 views
0

我有一個Style下面的代碼TreeViewItems在資源文件:WPF結合圖片

<Setter Property="HeaderTemplate"> 
    <Setter.Value> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <Image Name="img" 
        Width="20" 
        Height="20" 
        Stretch="Fill" 
        Source=""/> 
       <TextBlock Text="{Binding}" Margin="5,0" /> 
      </StackPanel> 
     </DataTemplate> 
    </Setter.Value> 
</Setter> 

我怎麼現在可以爲在代碼中TreeViewItem圖像/源?

+0

是MVVM的應用?或窗口後面的代碼? – StepUp

+0

我的意思是一個wpf應用程序背後的C#代碼。 – MyNameIsHans

+0

圖像總是一樣嗎?還是取決於treeviewitem? – Jens

回答

0

XAML:

<Window x:Class="TreeViewWpfApplication.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <TreeView Name="treeView"> 
     </TreeView>   
    </Grid> 
</Window> 

後面的代碼:

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

     private void CreateTree() 
     { 
      treeView.Items.Add(GetTreeView("text")); 
     } 

     private TreeViewItem GetTreeView(string text) 
     { 
      TreeViewItem newTreeViewItem = new TreeViewItem(); 

      // create stack panel 
      StackPanel stack = new StackPanel(); 
      stack.Orientation = Orientation.Horizontal; 

      // create Image 
      Image image = new Image(); 
      image.Source = new BitmapImage(new Uri(@"/Images/YourImage.png", UriKind.Relative)); 

      // Label 
      TextBlock lbl = new TextBlock(); 
      lbl.Text = text; 
      lbl.TextWrapping = TextWrapping.Wrap; 
      lbl.Width = 139; 

      // Add into stack 
      stack.Children.Add(image); 
      stack.Children.Add(lbl); 

      // assign stack to header 
      newTreeViewItem.Header = stack; 

      return newTreeViewItem; 
     } 
    } 
} 

注重的是image.Source = new BitmapImage(new Uri(@"/Images/YourImage.png", UriKind.Relative))其中 「/圖片/」 - 文件夾的名稱。

+0

謝謝!但是,我怎樣才能使項目可擴展?編輯:Nvm我只是沒有添加一個子項目。感謝您的幫助:) – MyNameIsHans

+0

@MyNameIsHans你可以接受我的回覆作爲答案,如果它對你有幫助:)。 – StepUp

+0

誰回答了這個問題?它對我來說完全正常。 – MyNameIsHans