如何从Silverlight中的.xaml加载控件

时间:2011-12-07 09:28:29

标签: silverlight xaml

问题是将一些复杂的控件加载到堆栈面板中。 我有几个类似的TreeListControls(来自devexpress),它有自己的x:我在.cs文件中使用的Name属性。

我更愿意将它们保存在单独的.xaml中并在需要时加载。

我如何加载它们?我还没找到任何有效的解决方案。我发现Application.LoadComponent不能正常工作......

目前,我看到的唯一方法是使用“可见性”属性,但它是完全的业余主义......

2 个答案:

答案 0 :(得分:0)

您可以为此目的使用XAML reader

答案 1 :(得分:0)

为什么不创建UserControls?您可以从代码中实例化它们,并在内容控件或网格中添加或删除它们。

RootGrid.Children.Add(new WhateverControl());

或者您是否需要在运行时编辑xaml?

Application.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>");