为了账号安全,请及时绑定邮箱和手机立即绑定

需要从窗口关闭页面

需要从窗口关闭页面

C#
潇湘沐 2022-11-21 21:42:07

所以我有一个页面(Homepage.xaml),当我点击这个页面上的一个按钮时,它会打开一个提示(Prompt.xaml)。

http://img3.sycdn.imooc.com/637b804b0001c16906580356.jpg

此提示只是我使用window.ShowDialog();Homepage.cs 中的方法创建和执行的一个窗口。我已经能够添加一些代码,当单击“否”按钮时提示窗口关闭,现在我发现麻烦的地方是“是”按钮。


我想要的是让 YES 按钮带我回到MainWindow,到目前为止我已经能够实现,但是当它打开时,以前的 Homepage.xaml 仍然存在,我不知道如何从提示窗口,如果可能的话?


另一件事是,当MainWindow打开它有点弹出时,我可以让它只是落在页面上而不是像新程序一样打开/弹出吗?这是代码。


首页.cs


public partial class User_Homepage : Page

{

    public static Page pager { get; set; } 


    public User_Homepage()

    {

        InitializeComponent();

    }

    public void UserLogoutBtn_Click(object sender, RoutedEventArgs e)

    {

        var lovmsgb = new Custom_MessageBoxes.LogoutVerification();

        lovmsgb.ShowDialog();

    }

}

提示.cs


public partial class LogoutVerification : Window

{

    public LogoutVerification()

    {

        InitializeComponent();

    }

    private void YesLogoutBtn_Click(object sender, RoutedEventArgs e)

    {

        this.Close();


        MainWindow window = new MainWindow() { WindowStartupLocation = WindowStartupLocation.CenterScreen};

        window.Show();

    }

    private void NoLogoutBtn_Click(object sender, RoutedEventArgs e)

    {

        this.Close();

    }

}

和MainWindow.cs以防万一


public partial class MainWindow : Window

{

    public MainWindow()

    {

        InitializeComponent();

    }

    private void BtnClickP1(object sender, RoutedEventArgs e)

    {

        mainFrame.Content = new Page1();

    }

    private void AdminBtn_Click(object sender, RoutedEventArgs e)

    {

        mainFrame.Content = new Page3();

    }

}


查看完整描述

1 回答

?
婷婷同学_

TA贡献1576条经验 获得超8个赞

要检查单击了哪个按钮,您应该DialogResult在 DialogWindow 中分配:


    private void YesLogoutBtn_Click(object sender, RoutedEventArgs e)

    {

        DialogResult = true;

        this.Close();

    }

    private void NoLogoutBtn_Click(object sender, RoutedEventArgs e)

    {

        DialogResult = false;

        this.Close();

    }

现在 make 方法在您的 MainWindow 中调用对话框并将其作为参数传递给 Page1:


    private void AskDialog()

    {

        Dialog dialog = new Dialog();

        if (dialog.ShowDialog() == true)

        {

            mainFrame.Content = null;

        }

        else

        {

            // False action

        }

    }


    private void button1_Click(object sender, RoutedEventArgs e)

    {

        frame.Content = new Page1(AskDialog);

    }

在 Page1 中,只需在按下按钮后调用此操作:


    public User_Homepage(Action askDialog)

    {

        InitializeComponent();

        AskDialog = askDialog;

    }

    private readonly Action AskDialog;

    private void UserLogoutBtn_Click(object sender, RoutedEventArgs e)

    {

        AskDialog();

    }


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 7 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信