Лучший отвечающий
Переключение подформ в WPF

Вопрос
-
Привет всем!
Как в WPF делается переключение экранов (подформ) в форме (аля KIS 2010)? Т.е. допустим есть левосторонняя менюшка с иерархией, при выборе определенного пункта меню, правая часть переключалась на нужную "подформу". Например, в WinForms, это можно сделать наложением друг на друга панелей и управлять ими через Visible, а в Design-Time выбирать нужную панель как переднюю.
В WPF так не получается, т.к. нельзя переключаться между панелями (или гридами) в Design-Time. TabControl не подходит, т.к. нужна именно иерархия вкладок.
- Перемещено Tagore Bandlamudi 2 октября 2010 г. 22:14 MSDN Forums consolidation (От:Разработка Windows-приложений)
2 ноября 2009 г. 1:02
Ответы
-
Вы можете создать отдельную wpf-страницу для каждой вкладки, на главной форме разместить элемент Frame, и при щелчке в меню вызывать метод Frame.Navigate(Uri page) для загрузки в фрэйм необходимого содержимого.
<Frame Margin="63,12,12,24" Name="frame1" /> <Button HorizontalAlignment="Left" Name="button1" Width="75" Grid.Row="1" Margin="0,21,0,0" Click="button1_Click">Button</Button> private void button1_Click(object sender, RoutedEventArgs e) { frame1.Navigate(new Uri("pack://application:,,,/Page1.xaml")); }
http://msdn.microsoft.com/ru-ru/library/system.windows.controls.frame.aspx- Помечено в качестве ответа Владимир Д 2 ноября 2009 г. 13:32
2 ноября 2009 г. 8:37
Все ответы
-
Вы можете создать отдельную wpf-страницу для каждой вкладки, на главной форме разместить элемент Frame, и при щелчке в меню вызывать метод Frame.Navigate(Uri page) для загрузки в фрэйм необходимого содержимого.
<Frame Margin="63,12,12,24" Name="frame1" /> <Button HorizontalAlignment="Left" Name="button1" Width="75" Grid.Row="1" Margin="0,21,0,0" Click="button1_Click">Button</Button> private void button1_Click(object sender, RoutedEventArgs e) { frame1.Navigate(new Uri("pack://application:,,,/Page1.xaml")); }
http://msdn.microsoft.com/ru-ru/library/system.windows.controls.frame.aspx- Помечено в качестве ответа Владимир Д 2 ноября 2009 г. 13:32
2 ноября 2009 г. 8:37 -
Помимо пейджинга, старый добрый метод установки Visible должен работать, хотя в дизайнере конечно ничего видно не будет, т.к. по крайней мере 2008 студия не способна по клику делать превью.
- Dmitri Nesteruk2 ноября 2009 г. 9:06 -
Спасибо, OlegGel. Похоже это то, что нужно. Единственно смущает то, что Page - это браузерный вариант Window. Есть ли у него какие-нибудь ограничения относительно Window (кроме кнопок сворачивания и закрытия)?
2 ноября 2009 г. 12:50 -
Немного добавлю WPF Page vs WPF Window2 ноября 2009 г. 13:27
-
А Таб Контрол чем не катит? По-моему лучше всего подошел бы. Что мешает вам скрыть таб хэдеры? Если самому лень - так есть и готовые. Иерархию в таком случае можно реализовать либо руками на онклик, либо вложением таб контролов
- Предложено в качестве ответа No Thanks_ 5 ноября 2009 г. 20:55
5 ноября 2009 г. 20:55