【发布时间】:2012-05-31 20:18:58
【问题描述】:
我正在尝试创建一个包含图像和文本的项目的树视图。
我遵循了这个示例 http://www.codeproject.com/Articles/124644/Basic-Understanding-of-Tree-View-in-WPF,但在 treeviewitem 标头上出现了奇怪的行为。
标题应该包含一个图像和一个标签,但它显示为所有树视图项的标题文本:System.Windows.Controls.StackPanel
这是我的代码:
tree_view.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(@"/ComponentName;component/Resources/Images/warning.png", UriKind.Relative));
// Label
Label lbl = new Label();
lbl.Content = text;
// Add into stack
stack.Children.Add(image);
stack.Children.Add(lbl);
// assign stack to header
newTreeViewItem.Header = stack;
return newTreeViewItem;
}
编辑:
另外,我在 TreeView 的 HeaderTemplate 中有这个来包装文本:
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Width="139" TextWrapping="Wrap" Text="{Binding}" />
</DataTemplate>
</Setter.Value>
</Setter>
【问题讨论】:
-
您是否设置了任何模板,例如TreeViewItem 的 Template 或 TreeView 的 HeaderTemplate?
-
是的,我在 TreeView 上设置了 HeaderTemplate 用于包装文本。请参阅上面的更新问题。
标签: c# wpf treeview stackpanel