关于WPF的主窗口和page调用问题

番茄不剃头 2019-06-12 08:58:56
点击按钮1之后,跳到一个page上,我想通过在page上添加一个button,点击之后回到mainwindow,可是回去之后再点击按钮1就没有任何反应了。我要怎么做才可以再次点击按钮1,还能调出page???刚学c#一会,恳请前辈们不吝赐教!
这是xaml的代码
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Name="mw" x:Class="CnGTest1.MainWindow"
Title="test" Height="500" Width="800" WindowStartupLocation="CenterScreen">
<Grid x:Name="gr1" Background="#FFF6F6F6">
<Button x:Name="btn_flfj" Content="1" FontSize="30" HorizontalAlignment="Left" Margin="39,293,0,0" VerticalAlignment="Top" Width="160" Height="80" FontWeight="Bold" Click="btn1_Click"/>
<Button x:Name="btn_ccgl" Content="2" FontSize="30" Click="btn_ccgl_Click" HorizontalAlignment="Left" Margin="321,293,0,0" VerticalAlignment="Top" Width="160" Height="80" FontWeight="Bold"/>
<Button x:Name="btn_xxcx" Content="3" FontSize="30" Click="btn_xxcx_Click" HorizontalAlignment="Left" Margin="593,293,0,0" VerticalAlignment="Top" Width="160" Height="80" FontWeight="Bold"/>
<ContentControl x:Name="DetailPage" d:IsHidden="True"/>
<Frame x:Name="frmMain" d:IsHidden="True" />

</Grid>
</Window>


这是mainwindow的代码
namespace CnGTest1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

private void btn1_Click(object sender, RoutedEventArgs e)
{
//Page p1 = new Page1();
//DetailPage.Content = new Frame()
//{
// Content = p1
//};


Page1 p1 = new Page1();
if (p1.Visibility == System .Windows.Visibility.Collapsed)
{
p1.Visibility = System.Windows.Visibility.Visible;
this.frmMain.Content = new Frame()
{
Content = p1
};
}
else
{
this.frmMain.Navigate(new Uri("BasicFunc/ClassifyandGrading.xaml", UriKind.Relative));
}
}


private void btn_ccgl_Click(object sender, RoutedEventArgs e)
{
this.frmMain.Navigate(new Uri("BasicFunc/InventoryManage.xaml", UriKind.Relative));
}

private void btn_xxcx_Click(object sender, RoutedEventArgs e)
{
this.frmMain.Navigate(new Uri("BasicFunc/InfoSearch.xaml", UriKind.Relative));
}


}
}


这是page的代码
namespace CnGTest1
{
/// <summary>
/// Page1.xaml 的交互逻辑
/// </summary>
public partial class Page1 : Page
{
public Page1()
{
InitializeComponent();
}

private void btn2_Click(object sender, RoutedEventArgs e)
{
this.Visibility = System.Windows.Visibility.Collapsed;
}

}
...全文
682 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
每次都会创建一个p1,必须保证只有一个p1,声明在事件外部,你的this.Visibility = System.Windows.Visibility.Collapsed; 才会有效。 再次打开切换Visibility的值即可。
qq14923349 2019-06-13
  • 打赏
  • 举报
回复
goback() gofaword()
这几个方法忘了
OrdinaryCoder 2019-06-13
  • 打赏
  • 举报
回复
看你的意思是想隐藏page1 之后再显示同一个page 但是 Page1 p1 = new Page1();这块是new了一个新的

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧