我在Fluent Ribbon中使用了WPF Composite App。我的视图包含功能区选项卡。在shell中创建视图时,它将插入到主Ribbon对象中。
以下是视图的基类:
public class WorkspaceView : UserControl {
public Fluent.RibbonTabItem RibbonTabItem { get; set; }
}
然后,开发人员可以在创建视图时在XAML文件中声明RibbonTabItem。它工作正常,但开发人员实际上看不到设计器中的选项卡,这使得这是一项繁琐的任务。
这引导我进入WPF Designer Extensibility API。我希望装配设计师能够显示完整的功能区。但我正在摸不着头脑,因为来自msdn的样本都没有类似的情况。
有人可以给我一个提示,我该如何处理?
由于
答案 0 :(得分:0)
我通过直接在UserControl类中操作设计时的布局来避免扩展设计器。该解决方案似乎在2012年和2013年的visual studio中正常运行。
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);
}
}
}
}
}