C# 框架/页面的可见性

C# 框架/页面的可见性,c#,wpf,C#,Wpf,问题是: 我有一个带有框架的主窗口,我在其中使用按钮加载页面,我的操作如下: private void btnKlanten_Click(object sender, RoutedEventArgs e) { frameMain.Source = new Uri("Frames/Klanten.xaml", UriKind.Relative); } 在pageview上,我创建了一个自定义关闭按钮,因此当我单击它时,我会模拟要关闭的页面,我实际要做的是将可见性设置为折叠: privat

问题是:

我有一个带有框架的主窗口,我在其中使用按钮加载页面,我的操作如下:

private void btnKlanten_Click(object sender, RoutedEventArgs e)
{
    frameMain.Source = new Uri("Frames/Klanten.xaml", UriKind.Relative);
}
在pageview上,我创建了一个自定义关闭按钮,因此当我单击它时,我会模拟要关闭的页面,我实际要做的是将可见性设置为折叠:

private void Close_MouseDown(object sender, MouseButtonEventArgs e)
{
    this.Visibility = Visibility.Collapsed;
}
现在的问题是,我找不到任何方法使页面再次可见。 我试着在窗口上初始化页面,并以这种方式访问visibility属性,但这不起作用

奇怪的是,当我点击另一个按钮在框架中加载另一个页面时,它确实起作用了。在我点击另一个按钮后,当我再次点击第一个按钮时,也会再次显示


有什么方法可以让它工作吗?

只要保留对该页面的引用即可

private Page1 page1;
private void btnShowFrame(object sender, RoutedEventArgs e)
{
    if (page1 == null)
    {
        page1 = new Page1();
        frame1.Navigate(page1);
    }
    if (page1.Visibility != System.Windows.Visibility.Visible) page1.Visibility = System.Windows.Visibility.Visible;
}