gpt4 book ai didi

WPF Microsoft.Windows.Controls.Ribbon.RibbonApplicationMenu & PRISM

转载 作者:行者123 更新时间:2023-12-04 06:37:43 26 4
gpt4 key购买 nike

我目前正在使用 PRISM 和 Microsoft WPF 功能区控件构建应用程序。到目前为止,我已经能够通过如下编码 shell XAML 来使用 RegionManager 将选项卡添加到功能区......

...
<r:Ribbon Grid.Row="0" prism:RegionManager.RegionName="{x:Static c:ShellRegion.Ribbon}">
</r:Ribbon>
...

然后在每个模块的 IModule.Initialize 方法期间向功能区添加其他选项卡,如下所示...
<r:RibbonTab x:Class="Views.RibbonView" Header="TabX">
<r:RibbonGroup Header="GroupX">
<r:RibbonButton Label="Button1" />
<r:RibbonButton Label="Button2" />
</r:RibbonGroup>
</r:RibbonTab>

public void Initialize() {
this.regionManager.RegisterViewWithRegion(ShellRegion.Ribbon, typeof(Views.RibbonView));
}

我现在要做的是为 RibbonApplicationMenu 实现类似的东西。我尝试了以下...
<r:RibbonApplicationMenu x:Class="Views.ApplicationMenu">
<r:RibbonApplicationMenuItem Header="MenuItem1" />
<r:RibbonApplicationMenuItem Header="MenuItem2" />
</r:RibbonApplicationMenu>

public void Initialize() {
this.regionManager.RegisterViewWithRegion(ShellRegion.ApplicationMenu, typeof(Views.ApplicationMenu));
}

但这实际上以嵌入在应用程序菜单中的应用程序菜单结束(想想单击下拉菜单,另一个下拉菜单也可供您单击)。

显然我可以看到两者之间的明显区别;对于选项卡,我添加了一个单独的 RibbonTab,对于菜单项,我实际上添加了另一个 RibbonApplicationMenu。问题是,我找不到任何关于创建我认为可以用来“将东西合并在一起”的“RegionAdapters”的文档;我理解为什么要添加单个 RibbonTab 的作品(尽管在 future 的模块中可能需要添加多个 RibbonTab,我希望不必像我目前拥有的那样单独编码每个 RibbonTab 并按照上面的示例)。同样,我知道我将不正确的子项添加到 RibbonApplicationMenu,这就是为什么我会生成嵌入式 RibbonApplicationMenu 而如果我单独编码每个 RibbonApplicationMenuItem(因为我有 RibbonTab 的)并相应地添加它们,那么它们也将起作用。

我想这里的问题(是的,我终于明白了)是如何最好地解决这个问题?

在理想情况下,我希望能够拥有一个 XAML 文件(每个模块),其中包含我想要添加到 shell 的所有 RibbonTab。同样,我希望每个模块有一个 XAML 文件,其中包含我要添加到 RibbonApplicationMenu 的所有项目。最后,我希望能够像现在一样使用 RegionManager 添加这些。

提前感谢您的帮助。

最佳答案

正如你所说,实现你想要做的最好的方法是创建一个自定义的 RegionAdapter。

这在 this section 中有解释。 Prism 文档(在 区域适配器 下)。

前段时间我创建了一个Region Adapter for the Accordion Control ,您可能还会发现它很有用。

我希望这有帮助。

关于WPF Microsoft.Windows.Controls.Ribbon.RibbonApplicationMenu & PRISM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com