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