通过XamlReader加载Xaml仅用于预览

通过XamlReader加载Xaml仅用于预览,xaml,root,xmlreader,xamlparseexception,xamlreader,Xaml,Root,Xmlreader,Xamlparseexception,Xamlreader,只是在运行时加载Xaml文件时遇到了一些问题。 请参阅我的代码片段以作为Usercontrol的内容加载文件: public UserControl LoadXaml(FileInfo paramFile) { FileInfo _XamlFile = paramFile; UIElement rootElement; FileStream s = new FileStream(_XamlFile.FullName, Fil

只是在运行时加载Xaml文件时遇到了一些问题。 请参阅我的代码片段以作为Usercontrol的内容加载文件:

        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将抛出第一个异常
  • 当XamlReader到达包含事件的控件时,例如
    单击
    文本更改
    ,它会引发另一个异常
  • 我试图弄清楚的是如何加载XAML文件,在主窗口的控件中显示它,并显示一些属性,如
    名称
    高度
    宽度
    等等。 只是读了几十个网站,但从来没有找到一个主题,使预览或诸如此类的事情

    我尝试的解决方案之一是将Xaml文件读取为XML并删除该代码。 问题是在C#中获取所有可能事件的列表

    如果对该代码有一些问题,请随时提问:)

    问候 丹尼尔