XmlReader tXml = XmlReader.Create(new StringReader("certain xaml code which has the desired layout..."));
UIElement MyElement = (UIElement) XamlReader.Load(tXml.ToString());
我需要MyElement
在 hubsection 内动态添加一个在运行时创建的。我怎样才能做到这一点?
谢谢!
XmlReader tXml = XmlReader.Create(new StringReader("certain xaml code which has the desired layout..."));
UIElement MyElement = (UIElement) XamlReader.Load(tXml.ToString());
我需要MyElement
在 hubsection 内动态添加一个在运行时创建的。我怎样才能做到这一点?
谢谢!
您可以在 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>