如何隐藏/取消隐藏WPF中主窗口上的菜单条(使用框架和页面)

时间:2013-03-20 05:03:30

标签: wpf vb.net

我创建了一个包含主页的应用程序。并且根据登录,我想根据用户级别向用户显示/隐藏不同的项目。 如何从其他页面访问我在主窗口中创建的菜单条。(即主窗口除外) 例如:- 我有3页

主窗口 - 主页面包含菜单条 这个窗口只有菜单条,几个文本框来显示文字。以及加载其他页面的框架控件

登录窗口 - 不同页面

用户窗口 - 登录后的另一个页面

(希望我很清楚)我正在使用框架在应用程序中导航 当应用程序启动时,它将打开登录页面。它不能显示菜单条 登录后,视用户而定,菜单项必须可见。 该怎么做

2 个答案:

答案 0 :(得分:0)

有一个名为Visibility的属性。将其与ViewModel绑定。

这是一个文本块代码,可以通过ViewModel更改可见性。

<TextBlock Text="{Binding StatusMessage}" Visibility="{Binding IsStatusMessageVisible}" Foreground="Red" Background="#ffc8c8c8" />

public System.Windows.Visibility IsStatusMessageVisible
{
    get
    {
        return (string.IsNullOrEmpty(StatusMessage))
            ? System.Windows.Visibility.Collapsed
            : System.Windows.Visibility.Visible;
    }
}

这实际上检查StatusMessage是否为空,然后不显示TextBlock。您可以在我的MenuStrip中使用它。

答案 1 :(得分:0)

我很抱歉它的回复很晚,但是看起来很可能对其他任何人都有用。

    void MenuItemShowHideManager_OnClicked(object sender, RoutedEventArgs e)

    {
                var navService = NavigationService.GetNavigationService(this);

                var window = new MasterPages.MyMasterWindow
                    {
                        MenuItem1 = {Visibility = Visibility.Hidden},
                        MenuItem2 = {Visibility = Visibility.Hidden},
                        MenuItem3 = { Visibility = Visibility.Visible }

                    };

             //Navigate to your default screen      
  }