Silverlight 在另一个XAML文件中内联导入并呈现XAML文件的内容?

Silverlight 在另一个XAML文件中内联导入并呈现XAML文件的内容?,silverlight,xaml,Silverlight,Xaml,我有一个从Expression Design导出的XAML文件。我想在我的一个用户控件中内联呈现该XAML内容。我是否可以引用外部XAML文件,将其作为要在其中呈现的UserControl上的资源包含?或者是否有其他标记可用于标识项目中要在当前位置呈现的XAML对象 我使用的是Silverlight 4。如果它只是用户控件或网格、控件模板或数据模板的参考资料部分的一堆内容,您可以使用它来包含它 否则,如果它是实际的XAML内容,您需要将其全部放在用户控件或内容控件中,可以包括在内-但您不能直接包

我有一个从Expression Design导出的XAML文件。我想在我的一个用户控件中内联呈现该XAML内容。我是否可以引用外部XAML文件,将其作为要在其中呈现的UserControl上的资源包含?或者是否有其他标记可用于标识项目中要在当前位置呈现的XAML对象


我使用的是Silverlight 4。

如果它只是用户控件或网格、控件模板或数据模板的参考资料部分的一堆内容,您可以使用它来包含它


否则,如果它是实际的XAML内容,您需要将其全部放在用户控件或内容控件中,可以包括在内-但您不能直接包括XAML文件,您需要复制并粘贴它。

您可以将XAML作为内容或作为文件包含在web服务器上,并使用动态加载和创建XAML内容。没有一个控件可以直接执行您想要的操作(但是包装链接中描述的功能会很简单)

例如:

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Path x:Name="top" Width="24" Height="12" Stretch="Fill" Fill="#FF065F02" Stroke="#10000000" Data="F1 M 0,6L 12,12L 24,6L 12,0L 0,6 Z "/>
</Canvas>
然后,将画布作为子控件添加到父控件(或者您想要使用的任何类型,因为它不需要是画布)

在上述情况下,我的Xaml位于标记为“内容”的文件中,并使用XDocument根据ID加载它(我的XML文档有多个自由浮动资产,所有资产都标记有ID):


...
Canvas c = XamlReader.Load(myXaml) as Canvas;
var e = from a in XDocument.Load("resources.xml").Descendants("assets") 
  where (string) a.Attribute("id") == desiredId select a.FirstNode;
<assets>
  <asset id="top">
    <Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <Path x:Name="top" Width="24" Height="12" Stretch="Fill" Fill="#FF065F02" Stroke="#10000000" Data="F1 M 0,6L 12,12L 24,6L 12,0L 0,6 Z "/>
    </Canvas>
  </a>
...