刚刚遇到运行时加载Xaml文件的问题。 为了您的信息,我的代码片段将文件作为用户控件的内容加载:
public UserControl LoadXaml(FileInfo paramFile)
{
FileInfo _XamlFile = paramFile;
UIElement rootElement;
FileStream s = new FileStream(_XamlFile.FullName, FileMode.Open);
rootElement = (UIElement)XamlReader.Load(s);
s.Close();
UserControl uc = new UserControl();
if (rootElement.GetType() == typeof(Window))
{
uc.Content = (rootElement as Window).Content;
}
else
{
uc = rootElement as UserControl;
}
return uc;
}
private void lstPDFDokumente_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var _XamlFile = ((System.Windows.Controls.ListBox)sender).SelectedItem as FileInfo;
if (_XamlFile != null)
{
layoutGrid.Children.Clear();
System.Windows.Controls.UserControl rootElement;
rootElement = XamlController.LoadXaml(_XamlFile);
layoutGrid.Children.Add(rootElement);
}
}
此功能正常,而事件和x:Class="..."
手动删除。
我试图解决的问题是:
x:Class="..."
,则XamlReader会抛出第一个异常。Click
或TextChanged
,它会抛出另一个异常。我试图弄清楚如何加载XamlFile,在主窗口的Control中显示它,并显示一些属性,如Name
,Height
,{{1} } 等等。
只是阅读了几十个网站,但从未找到过关于进行预览或类似事情的话题。
我尝试的其中一个解决方案是将Xaml文件作为XML读取并删除该代码。 问题是获得C#中所有可能事件的列表。
如果该代码存在一些问题,请随时询问:)
问候 丹尼尔