我在我的WPF应用程序中使用了一些矢量图形,我通过ResourceDictionary访问。我现在正在创建一个TreeView,我想在其中替换用于在节点前面添加矢量图形的默认图像。如果它们是真实的图像,那么为节点定义不同的图像就是一块蛋糕,但是有什么方法可以将Path元素用作TreeView中的图像源吗?
我宁愿使用矢量而不是实际图像,因为我在网站的其他区域使用矢量图形,并且最好只有一个图像源。
ResourceDictionary中的条目示例如下:
<ControlTemplate x:Key="MyPath">
<Viewbox>
<Grid>
<Path Data="F1M2357.31445,2509.047846875L2456.35742,2509.047846875C2461.00781,2509.047846875,2464.78906,2504.952146875,2464.78906,2499.916996875C2464.78906,2494.881836875,2461.00781,2490.785156875,2456.35742,2490.785156875L2357.31445,2490.785156875C2352.66602,2490.785156875,2348.88477,2494.881836875,2348.88477,2499.916996875C2348.88477,2504.952146875,2352.66602,2509.047846875,2357.31445,2509.047846875z" Fill="White" Stretch="Fill" />
</Grid>
</Viewbox>
</ControlTemplate>
答案 0 :(得分:0)
我不确定您正在谈论的默认图像,但在WPF中,您只需为包含您选择的任何UI元素的项目定义DataTemplate
即可。因此,没有理由使用Image
来显示矢量图形:
<TreeView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Path Data="F1M2357.31445,2509.047846875L2456.35742,2509.047846875C2461.00781,2509.047846875,2464.78906,2504.952146875,2464.78906,2499.916996875C2464.78906,2494.881836875,2461.00781,2490.785156875,2456.35742,2490.785156875L2357.31445,2490.785156875C2352.66602,2490.785156875,2348.88477,2494.881836875,2348.88477,2499.916996875C2348.88477,2504.952146875,2352.66602,2509.047846875,2357.31445,2509.047846875z" Fill="White" Stretch="Fill" />
<ContentPresenter Content="{Binding}" Margin="5,0,0,0" />
</StackPanel>
</DataTemplate>
</TreeView.ItemTemplate>