C# WPF Modern UI 禁用或隐藏 LinkGroup

C# WPF Modern UI disable or hide LinkGroup

您好,我正在编写一个具有用户登录名的 WPF 应用程序。我为此应用程序使用 Modern UI。该应用程序具有以下 Link 组:

<mui:ModernWindow.MenuLinkGroups>
    <mui:LinkGroup DisplayName="Group 1">
        <mui:LinkGroup.Links>
            <mui:Link DisplayName="A" Source="/Pages/A.xaml" />
            <mui:Link DisplayName="B" Source="/Pages/B.xaml" />
            <mui:Link DisplayName="C" Source="/Pages/C.xaml" />
        </mui:LinkGroup.Links>
    </mui:LinkGroup>
    <mui:LinkGroup DisplayName="Group 2">
        <mui:LinkGroup.Links>
            <mui:Link DisplayName="D" Source="/Pages/D.xaml" />
            <mui:Link DisplayName="F" Source="/Pages/F.xaml" />
            <mui:Link DisplayName="G" Source="/Pages/G.xaml" />
        </mui:LinkGroup.Links>
    </mui:LinkGroup>
</mui:ModernWindow.MenuLinkGroups>

我想根据用户 ID 隐藏或禁用名为 "Group 2" 的 Link 组。有办法吗?

也许为时已晚,但我认为有解决办法。 由于 LinkGroup 不是从 UIElement 派生的,因此无法隐藏它,但您可以解决这个问题。我确信这不是最清晰的解决方案,但它对我有用。

您可以通过

联系您的 LinkGroup
var window = App.Current.MainWindow as ModernWindow;
var toRemove = window.MenuLinkGroups.ElementAt(1);

MenuLinkGroupsCollection<T> 因此你可以 AddRemove 项目。

window.MenuLinkGroups.Remove(toRemove);

您也可以在登录后生成一个LinkGroupCollection,绑定ModernWindow.MenuLinkGroups到这个集合。