Fluent RibbonTabItem 的 WPF 设计器扩展性

本文关键字:扩展性 WPF RibbonTabItem Fluent | 更新日期: 2023-09-27 17:56:38

我正在我的 WPF 复合应用程序中使用 Fluent 功能区。 我的视图包含一个功能区选项卡。 在外壳中创建视图时,它将插入到主功能区对象中。

下面是视图的基类:

public class WorkspaceView : UserControl {
    public Fluent.RibbonTabItem RibbonTabItem { get; set; }
}

然后,开发人员可以在创建视图时在 XAML 文件中声明功能区选项卡项。 它工作正常,但开发人员实际上无法在设计器中看到选项卡,这使得它成为一项繁琐的任务。

这让我了解了 WPF 设计器扩展性 API。 我希望操纵设计器以显示完整的功能区。 但我挠头,因为 msdn 中没有一个示例具有类似的方案。

有人可以给我一个提示,我该如何继续?

谢谢

Fluent RibbonTabItem 的 WPF 设计器扩展性

我避免通过在设计时直接在 UserControl 类中操作布局来扩展设计器。 该解决方案似乎在Visual Studio 2012和2013中正常工作。

public class WorkspaceView : UserControl {
    public RibbonTabItem RibbonTabItem { get; set; }
    protected override void OnInitialized(EventArgs e) {
        base.OnInitialized(e);
        if (DesignerProperties.GetIsInDesignMode(this)) {
            if (RibbonTabItem != null) {
                UIElement content = this.Content as UIElement;
                DockPanel panel = new DockPanel();
                Content = panel;
                Ribbon ribbon = new Ribbon();
                ribbon.Tabs.Add(RibbonTabItem);
                DockPanel.SetDock(ribbon, Dock.Top);
                panel.Children.Add(ribbon);
                if (content != null) {
                    panel.Children.Add(content);
                    DockPanel.SetDock(content, Dock.Bottom);
                }
            }
        }
    }
}