2015-11-29 4 views
0

У меня есть определенный вопрос на моих руках.Как загрузить содержимое XAML по запросу

Я создаю приложение и в текущей версии У меня есть основной элемент xaml Grid, и все другие «страницы» также являются просто элементами Grid с атрибутом видимости «Скрыто».

Я ищу способ оптимизировать это, и я провел несколько тестов со страницами, но на самом деле они не были хорошими, поскольку я не так опытен с XAML и C#.

Допустим, у нас есть <Window> с основным <Grid> и внутри этой сетки является основным содержанием приложения, и есть еще один <Grid> с настройками (как сейчас). Как загрузить содержимое сетки настроек, когда пользователь нажимает кнопку «Настройки» и выгружает ее, когда пользователь закрывает страницу настроек.

Я думал о загрузке его в виде страницы, но я не хочу, чтобы пользователь перемещался из основного содержимого, но имел меню настроек в качестве наложения.

Есть ли решение для динамической загрузки другого файла XAML (с элементами настроек) внутри существующего окна XAML?

Благодарим за помощь!

ответ

1

Поместите свой контент по запросу в UserControl и загрузите UserControl по требованию.

UserControl1 ctrl = new UserControl1();    
Grid1.Children.Add(ctrl); 

Несколько полезных ссылок:

CodeProject

CSharpCorner

+0

Я не совсем уверен, как это сделать. – DethoRhyne

+0

@ DethoRhyne проверить обновленный ответ – AnjumSKhan

+0

Мне нравится идея до сих пор. Я попробую это вечером, когда я вернусь домой. – DethoRhyne

0

Я не совсем уверен, что вы пытаетесь достичь, но загрузить XAML динамически попробовать класс XamlReader:

System.Windows.UIElement эль = (System.Windows.UIElement) System.Windows.Markup.XamlReader. Нагрузка (XAML);

Как правило, если я хочу что-то скрытое до тех пор, пока не произойдет какое-либо действие, я бы привязал его видимость к свойству на модели представления, а какое-то действие установило бы значение свойства (и запустило свойство propertychangedevent), и содержимое будет показано.

+0

Вот как у меня сейчас. Это видимость Скрыта до нажатия кнопки, и я сделал обработчики для того, что должно произойти. Это функционально, но позже я понял, что так много элементов XAML немного замедляет приложение в более слабых системах. Вот почему я ищу способ загрузить каждый раздел инструмента только тогда, когда это необходимо, и освободить его, когда это не так. – DethoRhyne

Смежные вопросы