WPF从MainWindow类访问页面控件

时间:2019-01-15 13:40:17

标签: wpf class mainwindow

我创建了一个WPF应用程序,该应用程序在两个页面之间进行导航。 我希望默认情况下隐藏其中一个页面的控件(一个组框),并在按下键盘时能够启用它。 Home1是页面的名称,而bgdb是groupbox的名称。 Home1_Loaded与在MainWindow的框架内加载的页面挂钩

private void Window_Initialized(object sender, EventArgs e)
{
    Main.Content = new home();
    Main.Navigate(new Uri("home.xaml", UriKind.RelativeOrAbsolute));
}

需要进行哪些修改,以便我可以从MainWindow类访问bgdb并通过快捷键(例如Ctrl + B)取消隐藏它? 这是mainwindow默认加载主页的代码

"Cause: invalid code lengths set"

1 个答案:

答案 0 :(得分:1)

如果您将Page托管在Frame的{​​{1}}元素中,则可以将MainWindow的{​​{1}}属性强制转换为{{1 }},然后访问其任何成员,例如:

Content

MainWindow.xaml:

Frame

例如,您可以处理Home1的{​​{1}}事件:

Home1 home1 = e.Content as Home1;
if (home1 != null)
    home1.bdgb.Visibility = Visibility.Collapsed;