我正在尝试在wpf应用程序中使用矢量图像。我在“资源”文件夹中有一个图标“ ic_document.xaml”,这里是:
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Name="Svg63" Width="50"
Height="50">
<Canvas Name="Sf1">
<Path xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="Path2" Fill="#000000"
Data="M 7 2 V 48 H 43 V 14.59 l -0.28 -0.31 -12 -12 L 30.406 2 Z M 9 4 H 29 V 16 H 41 V 46 H 9 Z M 31 5.4375 39.5625 14 H 31 Z" />
</Canvas>
</Canvas>
我知道,如果我想在应用程序中使用它,那么我应该创建一个“ ResourceDictionary”,然后将该代码复制粘贴到它。但是我可以更简单地做到这一点,仅提供ic_document.xaml的链接吗?像这样
<ResourceDictionary xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Canvas x:Key="IcTest">
//Link to ic_document.xaml
</Canvas>
</ResourceDictionary>
我该怎么办?
答案 0 :(得分:0)
首先,我想回答是否可以链接ic_document.xaml
答案是不,我们不能做类似的事情,但是我们可以在您的XAML文件中创建一个样式并使用它
资源文件
<Style x:Key="MyIcon" TargetType="Path">
<Setter Property="Data" Value="F1 M 22,12L 26,12L 26,22L 36,22L 36,26L 26,26L 26,36L 22,36L 22,26L 12,26L 12,22L 22,22L 22,12 Z"></Setter>
<Setter Property="Fill" Value="#000000"></Setter>
</Style>
查看
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Width="50"
Height="50">
<Canvas >
<Path Style="{StaticResource MyIcon}">
</Path>
</Canvas>
请注意,如果您有多个主题并且需要使用DynamicResource,则需要使用PathGeometry进行设置
资源文件
<PathGeometry x:Key="MyIcon" >
<PathFigure StartPoint="0,0" >
<LineSegment Point="0,50"/>
<LineSegment Point="100,50"/>
<LineSegment Point="100,20"/>
<LineSegment Point="80,0"/>
<LineSegment Point="0,0"/>
</PathFigure>
</PathGeometry>
查看
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Name="Svg63" Width="50"
Height="50">
<Canvas Name="Sf1">
<Path xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="Path2" Fill="#000000"
Data="{DynamicResource MyIcon}" />
</Canvas>