繁体   English   中英

如何隐藏/显示 WPF 页面中的按钮?

[英]How to hide/show buttons in WPF pages?

我在 WPF 中有一个滑块菜单,我有 2 个按钮用于显示和隐藏它。在 MainWindow 中定义的菜单意味着它在所有页面中都可见,但我需要隐藏某些页面中的按钮,例如登录页面。这是我的代码在我的滑块菜单后面:

  private void BtnTopMenuHide_Click(object sender, RoutedEventArgs e)
    {
        ShowHideMenu("sbHideTopMenu", btnTopMenuHide, btnTopMenuShow, pnlTopMenu);
    }



    private void BtnTopMenuShow_Click(object sender, RoutedEventArgs e)
    {
        ShowHideMenu("sbShowTopMenu", btnTopMenuHide, btnTopMenuShow, pnlTopMenu);
    }

    private void ShowHideMenu(string Storyboard, Button btnHide, Button btnShow, StackPanel pnl)
    {
        Storyboard sb = Resources[Storyboard] as Storyboard;
        sb.Begin(pnl);

        if (Storyboard.Contains("Show"))
        {
            btnHide.Visibility = Visibility.Visible;
            btnShow.Visibility = Visibility.Hidden;
        }
        else if (Storyboard.Contains("Hide"))
        {
            btnShow.Visibility = Visibility.Visible;
            btnHide.Visibility = Visibility.Hidden;
        }

    }

例如我有一个注销方法

 private void LogOut_Click(object sender, RoutedEventArgs e)
    {
        string SessionFile = @"C:\somefile\CFG\session.dat";
        File.Delete(SessionFile);
        MainFrame.Navigate(new Uri("Pages/LoginPage.xaml", UriKind.Relative));
        ShowHideMenu("sbHideTopMenu", btnTopMenuHide, btnTopMenuShow, pnlTopMenu);
        btnTopMenuHide.Visibility = Visibility.Hidden;
        btnTopMenuShow.Visibility = Visibility.Hidden;
    }

当我单击注销按钮时,它会隐藏按钮,而且我有这样的登录成功方法:

 MainWindow _main = new MainWindow();

    private void Page_Loaded(object sender, RoutedEventArgs e)
    {
        IsConnected.CheckConnection();
        if (loginService.SessionData().Success() && loginService.SessionData().NotExpired())
        {
            _main.btnTopMenuHide.Visibility = Visibility.Visible;
            _main.btnTopMenuShow.Visibility = Visibility.Visible;
            NavigationService.Navigate(new Uri("Pages/PaymentPage.xaml", UriKind.Relative));
        }
    }

在这种方法中,如果登录成功,它会导航页面但不显示按钮,当我尝试从它正在创建的 MainWindow 创建对象时,但如果我关闭应用程序,它仍在运行后台,因为对象我如何解决这个问题或任何ideo隐藏此按钮的不同方法? 我希望我解释了一切,谢谢。

我们不能创建一个对象

MainWindow _main = new MainWindow();

从 MainWindow.This 代码创建一个新窗口,但我不需要一个新的 MainWindow。我需要从当前窗口创建一个对象。所以我们应该从Current MainWindow创建一个对象,如

MainWindow wnd = (MainWindow)Application.Current.MainWindow;

然后我们可以使用像

wnd.btnTopMenuHide.Visibility = Visibility.Visible;

. 就是这样。这对我有用,希望对其他人有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM