Загрузка Xaml через XamlReader только для предварительного просмотра

Только что получил некоторые проблемы с загрузкой файлов 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="..." в корневом элементе XamlReader выдает первое исключение.
  2. Когда XamlReader достигает элемента управления, который содержит событие, например Click или же TextChangedБросает еще одно исключение.

То, что я пытаюсь выяснить, это как загрузить XamlFile, показать его внутри элемента управления в главном окне и показать некоторые атрибуты, такие как Name,Height,Width и так далее. Просто прочитайте десятки веб-сайтов, но так и не нашли тему для предварительного просмотра или тому подобное.

Одним из решений, которое я попробовал, является чтение файла Xaml в формате XML и удаление этого кода. Проблема заключалась в том, чтобы получить список всех возможных событий в C#.

Если есть какие-то вопросы к этому Кодексу, не стесняйтесь спрашивать:)

Привет Даниил

0 ответов

Другие вопросы по тегам