WPF доступ к элементу управления страницы из класса MainWindow
Я создал приложение WPF, которое имеет навигацию между двумя страницами. Я хочу, чтобы элемент управления (групповое окно) на одной из страниц был скрыт по умолчанию и чтобы его можно было включить при нажатии комбинации клавиш. Home1 - это имя страницы, а bgdb - это имя группы. Home1_Loaded подключается к загрузке страницы внутри фрейма в MainWindow
public void Home1_Loaded(object sender, RoutedEventArgs e)
{
bdgb.Visibility = Visibility.Collapsed;
}
Какие изменения нужно сделать, чтобы я мог получить доступ к bgdb из класса MainWindow и показать его с помощью комбинации клавиш (например, Ctrl+B)? это код для главного окна, загружающего домашнюю страницу по умолчанию
private void Window_Initialized(object sender, EventArgs e)
{
Main.Content = new home();
Main.Navigate(new Uri("home.xaml", UriKind.RelativeOrAbsolute));
}
1 ответ
Если вы хостинг Page
в Frame
элемент в MainWindow
Вы могли бы разыграть Content
собственность Frame
в Home1
и затем получить доступ к любому из его членов, например:
Home1 home1 = e.Content as Home1;
if (home1 != null)
home1.bdgb.Visibility = Visibility.Collapsed;
MainWindow.xaml:
<Frame x:Name="frame" />
Вы могли бы, например, справиться с Navigated
событие для Frame
:
private void Window_Initialized(object sender, EventArgs e)
{
Main.Content = new home();
Main.Navigated += Main_Navigated;
Main.Navigate(new Uri("home.xaml", UriKind.RelativeOrAbsolute));
}
private void Main_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
home home1 = Main.Content as home;
if (home1 != null)
home1.bdgb.Visibility = Visibility.Collapsed;
Main.Navigated -= Main_Navigated;
}