我有很多来自Visual Studio Image Library的XAML文件。以下是其中一个的内容 - Add_16xMD.xaml
<!-- This file was generated by the AiToXaml tool.-->
<!-- Tool Version: 14.0.22307.0 -->
<Viewbox Width="16" Height="16" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Rectangle Width="16" Height="16">
<Rectangle.Fill>
<DrawingBrush>
<DrawingBrush.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Brush="#00FFFFFF" Geometry="F1M16,16L0,16 0,0 16,0z" />
<GeometryDrawing Brush="#FFF6F6F6" Geometry="F1M10,7L14,7 14,10 10,10 10,14 7,14 7,10 3,10 3,7 7,7 7,3 10,3z" />
<GeometryDrawing Brush="#FF388A34" Geometry="F1M13,8L9,8 9,4 8,4 8,8 4,8 4,9 8,9 8,13 9,13 9,9 13,9z" />
</DrawingGroup.Children>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Rectangle.Fill>
</Rectangle>
</Viewbox>
我希望将它包含在我的WPF项目中并在我的应用程序中使用。我不想复制粘贴代码,我不想修改这些用ResourceDictionary
包装它们的文件。
有什么办法可以实现这个目标吗?
答案 0 :(得分:0)
只需在应用中将它们包含为简单文件资源即可。然后你可以简单地通过XamlReader
实例传递它们,这个实例将为你提供根项目的实例(在本例中为ViewBox)。从那里,无论你想做什么,都可以做到。
https://blogs.msdn.microsoft.com/ashish/2007/08/14/dynamically-loading-xaml
简而言之,这样做......
StreamReader mysr = new StreamReader("SomeFile.xaml");
ViewBox myLoadedViewBox = XamlReader.Load(mysr.BaseStream) as ViewBox;
答案 1 :(得分:0)
您可以做的另一件事是添加一个资源字典,然后添加对您感兴趣的文件的引用。换句话说,您没有打开每个文件并将其包装起来,您和#39 ;重新创建一个资源字典,引用您感兴趣的所有资源文件。
<ResourceDictionary>
[Ref to file 1.xaml]
[Ref to file 2.xaml]
[Ref to file 3.xaml]
</ResourceDictionary>
我没有方便的语法,但这应该很容易找到,因为引用一直在使用。