WPF доступ к элементу управления страницы из класса MainWindow - PullRequest
0 голосов
/ 15 января 2019

Я создал приложение 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 Ответ

0 голосов
/ 15 января 2019

Если вы размещаете 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...