В классе WPF есть класс страницы и навигационная функция. Я разрабатываю приложение Window forms и нуждаюсь в аналогичной функциональности. Каков простой и плавный способ подражать навигации между различными формами? Или, может быть, внутри должна быть одна форма и несколько контейнеров? Как я могу достичь навигационных функций?Эмуляция навигации между страницами в Winforms
1
A
ответ
1
Создать панель и Dock
до Fill
.
Then BringToFront
панель.
Сделайте это для каждой «формы», в которой вы нуждаетесь.
EDIT: Это работает, как ожидалось:
public Form1()
{
InitializeComponent();
Shown += Form1_Shown;
panel1.Dock = DockStyle.Fill;
panel2.Dock = DockStyle.Fill;
}
void Form1_Shown(object sender, EventArgs e)
{
panel1.BringToFront();
Update();
Thread.Sleep(3000);
panel2.BringToFront();
Update();
Thread.Sleep(3000);
panel1.BringToFront();
}
EDIT: Добавлены Update();
«S из-за комментарием.
Спасибо. Но BringToFront не работает. Я использовал свойство Visible панелей. – Peter17
@ Peter17 'Visible' в порядке. Но я удивлен, что «BringToFront» не работает. Я добавил код, который работает на мой ответ. – ispiro
Вызов Sleep (3000) в потоке пользовательского интерфейса * точно * достаточно, чтобы заставить Windows отображать окно-призрак с сообщением «Не реагировать» в строке заголовка. Предотвращение того, чтобы вы фактически увидели панель, которая когда-либо была доставлена на фронт. Это ужасно плохой пример. –