1

刚刚在运行时加载 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="..."被手动删除。

我试图解决的问题是:

  1. 如果x:Class="..."在根元素处存在 a,XamlReader 将引发第一个异常。
  2. 当 XamlReader 到达一个包含事件的控件时,例如ClickTextChanged,它会引发另一个异常。

我试图弄清楚的是如何加载 XamlFile,在主窗口的控件内显示它,并显示一些属性,如、Name等。只是阅读了几十个网站,但从未找到要进行预览或类似的主题。HeightWidth

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

如果对该准则有任何疑问,请随时提问:)

问候丹尼尔

4

0 回答 0