1
XmlReader tXml = XmlReader.Create(new StringReader("certain xaml code which has the desired layout..."));
UIElement MyElement = (UIElement) XamlReader.Load(tXml.ToString());

我需要MyElement在 hubsection 内动态添加一个在运行时创建的。我怎样才能做到这一点?

谢谢!

4

1 回答 1

0

您可以在 DataTemplate 标记之间插入您的 xaml 字符串:

var myXaml = "<TextBlock>test</TextBlock>";
var template = XamlReader.Load("<DataTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">" + myXaml + "</DataTemplate>");

如果需要,不要忘记声明默认命名空间和其他命名空间。

接下来,您只需设置 HubSection 的 ContentTemplate 属性:

Section1.ContentTemplate = template as DataTemplate;

假设您的 Hub 声明如下:

<Hub>
    <HubSection x:Name="Section1" />
</Hub>
于 2015-12-22T10:07:35.490 回答