WPF 从 MainWindow 访问页面控件 class
WPF access a page control from MainWindow class
我创建了一个在两个页面之间导航的 WPF 应用程序。
我希望其中一个页面的控件(组框)默认隐藏,并且能够在按下组合键时启用它。
Home1 是页面的名称,bgdb 是组框的名称。
Home1_Loaded 连接到 MainWindow
框架内的页面加载
public void Home1_Loaded(object sender, RoutedEventArgs e)
{
bdgb.Visibility = Visibility.Collapsed;
}
需要做哪些修改才能从 MainWindow class 访问 bgdb 并通过组合键(例如 Ctrl+B)取消隐藏它?
这是主窗口默认加载主页的代码
private void Window_Initialized(object sender, EventArgs e)
{
Main.Content = new home();
Main.Navigate(new Uri("home.xaml", UriKind.RelativeOrAbsolute));
}
如果您在 MainWindow
中的 Frame
元素中托管 Page
,您可以投射 [=14] 的 Content
属性 =] 到 Home1
然后访问它的任何成员,例如:
Home1 home1 = e.Content as Home1;
if (home1 != null)
home1.bdgb.Visibility = Visibility.Collapsed;
MainWindow.xaml:
<Frame x:Name="frame" />
例如,您可以处理 Frame
的 Navigated
事件:
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;
}
我创建了一个在两个页面之间导航的 WPF 应用程序。 我希望其中一个页面的控件(组框)默认隐藏,并且能够在按下组合键时启用它。 Home1 是页面的名称,bgdb 是组框的名称。 Home1_Loaded 连接到 MainWindow
框架内的页面加载public void Home1_Loaded(object sender, RoutedEventArgs e)
{
bdgb.Visibility = Visibility.Collapsed;
}
需要做哪些修改才能从 MainWindow class 访问 bgdb 并通过组合键(例如 Ctrl+B)取消隐藏它? 这是主窗口默认加载主页的代码
private void Window_Initialized(object sender, EventArgs e)
{
Main.Content = new home();
Main.Navigate(new Uri("home.xaml", UriKind.RelativeOrAbsolute));
}
如果您在 MainWindow
中的 Frame
元素中托管 Page
,您可以投射 [=14] 的 Content
属性 =] 到 Home1
然后访问它的任何成员,例如:
Home1 home1 = e.Content as Home1;
if (home1 != null)
home1.bdgb.Visibility = Visibility.Collapsed;
MainWindow.xaml:
<Frame x:Name="frame" />
例如,您可以处理 Frame
的 Navigated
事件:
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;
}