WPF从MainWindow类访问页面控件
我已经创建了一个WPF应用程序,它在两个页面之间具有导航功能。 我希望其中一个页面中的控件(groupbox)在默认情况下隐藏,并在按下组合键时启用它。 Home1是页面的名称,bgdb是groupbox的名称。 Home1_Loaded连接到主窗口中框架内的页面加载WPF从MainWindow类访问页面控件,wpf,class,mainwindow,Wpf,Class,Mainwindow,我已经创建了一个WPF应用程序,它在两个页面之间具有导航功能。 我希望其中一个页面中的控件(groupbox)在默认情况下隐藏,并在按下组合键时启用它。 Home1是页面的名称,bgdb是groupbox的名称。 Home1_Loaded连接到主窗口中框架内的页面加载 public void Home1_Loaded(object sender, RoutedEventArgs e) { bdgb.Visibility = Visibility.Collapsed; } 需要做哪些修改
public void Home1_Loaded(object sender, RoutedEventArgs e)
{
bdgb.Visibility = Visibility.Collapsed;
}
需要做哪些修改才能从MainWindow类访问bgdb并通过组合键(ex Ctrl+B)取消隐藏它?
这是默认情况下主窗口加载主页的代码
private void Window_Initialized(object sender, EventArgs e)
{
Main.Content = new home();
Main.Navigate(new Uri("home.xaml", UriKind.RelativeOrAbsolute));
}
如果您在
主窗口的框架
元素中托管页面
,则可以将框架
的内容
属性强制转换为主页1
,然后访问其任何成员,例如:
Home1 home1 = e.Content as Home1;
if (home1 != null)
home1.bdgb.Visibility = Visibility.Collapsed;
MainWindow.xaml:
<Frame x:Name="frame" />
看这里。这对你有帮助!我对问题进行了一些编辑,将页面加载代码包括在内。代码的第一部分将放在哪里?@erma86:因此框架
被命名为Main
?请参见我的edit.Yes.Frame命名为Main。使用了已编辑的代码,但:找不到类型或命名空间名称“Home”(是否缺少using指令或程序集引用?)x2@erma86:Home1
是定义GroupBox
的页面
类的名称。在您的情况下,它可能应该是主页
。请看我的编辑。明白了,就我而言,全班都是“家”。现在对于隐藏对象的“显示”,我可以从这里开始使用受保护的覆盖位:?
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;
}