В настоящее время я создаю приложение, используя PRISM и элемент управления Microsoft WPF Ribbon.До сих пор я мог добавлять вкладки на ленте с помощью RegionManager, кодируя оболочку XAML следующим образом ...
...
<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 (хотя в будущих модулях может потребоваться добавить несколько RibbonTab, и я бы предпочел не обязательно кодировать каждый RibbonTab индивидуально, как у меня сейчас и согласно примеру выше).Точно так же я понимаю, что я добавляю неправильный дочерний элемент в RibbonApplicationMenu, и поэтому я получаю встроенный RibbonApplicationMenu, тогда как, если я закодировал каждый RibbonApplicationMenuItem по отдельности (как у меня RibbonTab's) и добавлял их соответственно, они тоже будут работать.1012 *
Полагаю, вопрос здесь (да, я наконец-то дошел до этого): как лучше всего подойти к этому?
В идеальном мире я хотел бы иметь возможность иметь один файл XAML(на модуль), который содержит все RibbonTab, которые я хочу добавить в оболочку.Точно так же я хотел бы один XAML-файл для модуля, который содержит все элементы, которые я хочу добавить в RibbonApplicationMenu.Наконец, я хотел бы иметь возможность добавлять их с помощью RegionManager, как я делаю в настоящее время.
Заранее благодарен за любую помощь.