Как добиться разных состояний зрения в приложениях WPF - PullRequest
2 голосов
/ 22 августа 2011

У меня есть идея для личного проекта.И я знаю один способ сделать это в Windows Forms (который я больше не хочу использовать).По сути, я мог (в WinForms) просто рисовать все на экране (форма), а затем, когда мне нужно переключить представления / состояния приложения, просто перерисовать новый материал вместо старого.

Но как можноу нас разные состояния в WPF?Есть ли «правильный» или «правильный» способ сделать это?Описано ли что-то подобное в документах?

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

Любая помощь будет принята с благодарностью.Я новичок в WPF, но за прошедшую неделю я добился большого прогресса!

Спасибо!

PS: Я просто кое-что подумал.Если решение состояло в том, чтобы нарисовать то, что нужно для одного экрана, и когда пришло время отобразить следующий экран, просто избавьтесь от всего / спрячьте все и создайте / отобразите новый материал, то как бы мы справились с этим?Поскольку мы не можем / не должны изменять разметку XAML во время выполнения, можем / должны?: /

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Не уверен, как вы рисуете свои представления / состояния в WinForms (прямое рисование на графическом объекте?).

Наиболее близким к тому, что вы описываете, является VisualStateManager . Вы можете использовать его для статического определения нескольких визуальных состояний внутри одного XAML и перехода между ними (используя плавную анимацию, если хотите).

Если то, что вы сделали, показало разные формы с помощью Show / ShowDialog (), то эквивалентно будет использовать разные окна и показать / скрыть их.

Если вы только что очистили / добавили элементы управления в свою форму, то вы можете сделать то же самое в WPF. Большинство элементов управления в WPF имеют свойство Content или Children вместо Control.Controls в формах.

1 голос
/ 22 августа 2011

Не знаю, понимаю ли я, чего вы действительно хотите.Но вот мои мысли:

  • Вы можете использовать несколько окон и показывать / скрывать их соответственно
  • Вы можете использовать функциональность Frame / Page в WP ( MSDN )
  • если вам действительно нужно, вы можете загрузить свой XAML и удалить самый верхний контент в вашем окне и заменить его загруженным контентом
  • Вы можете использовать функциональность VisualStateGroup, чтобы изменить внешний видтекущее окно

Я думаю, вы будете довольны вторым решением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...