问题是关于将一些复杂的控件加载到Stack Panel中。我有几个类似的TreeListControls(来自devexpress),它们有自己的x:Name属性,我在。cs文件中使用。
我更喜欢将它们保存在单独的.xaml中,并在需要时加载。
如何加载它们?我还没有找到有效的解决办法。我找到的那个应用程序。LoadComponent不能正常工作…
现在我看到的唯一方法是玩"可见性"属性,但这是完全业余…
您可以为此目的使用XAML阅读器
为什么不直接创建UserControls呢?您可以从代码中实例化它们,并从内容控件或网格中添加或删除它们。
RootGrid.Children.Add(new WhateverControl());
或者你需要在运行时编辑xaml ?
应用程序。LoadComponent至少可以为我创建非UI对象
Application.LoadComponent(Root, new Uri("/SilverlightClient;component/NavigationTreeConfig.xaml", UriKind.Relative));
当我需要在代码中创建XAML时,我将XamlReader带一个字符串。但我还没有尝试过文件。
ContentTemplate = (DataTemplate) XamlReader.Load(
"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'><TextBlock>TemplateSelectorError: " + errorMessage + "</TextBlock></DataTemplate>");