C# 如何包含非资源的原始xaml文件?

C# 如何包含非资源的原始xaml文件?,c#,wpf,visual-studio,xaml,C#,Wpf,Visual Studio,Xaml,我有很多来自的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"> &

我有很多来自的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
包装它们


有什么办法可以实现吗?

只需将它们作为简单的文件资源包含在应用程序中即可。然后,您可以简单地将它们传递给
XamlReader
实例,该实例将为您提供根项目的实例(本例中为ViewBox)。从那以后,你想怎么做就怎么做

总之,做这个

StreamReader mysr = new StreamReader("SomeFile.xaml");
ViewBox myLoadedViewBox = XamlReader.Load(mysr.BaseStream) as ViewBox;

您可以做的另一件事是添加一个资源字典,然后添加对您感兴趣的文件的引用。换句话说,您不是打开并包装每个文件,而是创建一个引用所有感兴趣的资源文件的资源字典

<ResourceDictionary>
    [Ref to file 1.xaml]
    [Ref to file 2.xaml]
    [Ref to file 3.xaml]
</ResourceDictionary>

[参考文件1.xaml]
[参考文件2.xaml]
[参考文件3.xaml]

我手头没有确切的语法,但这应该很容易找到,因为引用一直在使用。

因此,此控件在Designer中不可用,对吗?恐怕不行,我想你别无选择。它们没有类的支持,因此不能以这种方式加载它们。您拥有的唯一标识符是文件名。设计者还可以如何识别它?为了避免使用XAMLReader,您可以在此处将它们标记为XAML资源,然后根据您给它们的ID引用它们。我还没有尝试过这个方法,但这就是您引用资源的方式,所以我无法想象它会不起作用。但不确定设计时间。是的,这是一个选项。我计划编写一个脚本,生成一个ResourceDictionary,其中包含所有xaml文件,但最好选择此引用。我会试着找一个语法…你确定有这个语法吗?有一段时间我在Webbene上找不到任何示例,但我想我记得有一些语法,指定了文件,然后指定了文件所引用的ID(因为文件本身没有任何ID)。这与包含资源字典的文件不同。如果我遇到它,我会告诉你的。