Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF从MainWindow类访问页面控件_Wpf_Class_Mainwindow - Fatal编程技术网

WPF从MainWindow类访问页面控件

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; } 需要做哪些修改

我已经创建了一个WPF应用程序,它在两个页面之间具有导航功能。 我希望其中一个页面中的控件(groupbox)在默认情况下隐藏,并在按下组合键时启用它。 Home1是页面的名称,bgdb是groupbox的名称。 Home1_Loaded连接到主窗口中框架内的页面加载

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;
}