我将使用什么控件模型来实现像Visual Studio这样的工具箱控件?

时间:2014-05-05 21:01:30

标签: c# wpf winforms visual-studio

我需要实现一个类似于visual studio中公开的工具箱的工具箱控件。

我可以想到几种方法来实现这一目标,但它们似乎都没有。

我能想出的最佳解决方案是实现列表框的堆栈面板。

我如何才能最贴近地匹配VS工具箱的功能和行为?

enter image description here

1 个答案:

答案 0 :(得分:0)

我不了解Visual Studio的内部结构,但工具箱提供了框标准TreeView控件的体验。

项目模板很可能是从一个看起来像这样的容器类构建的......

public class ToolbarItemInfo
{
    public string FamilyName { get; private set; }
    public Image ItemIcon { get; private set; }
    public string DisplayName { get; private set; }
    public Action<ToolbarItemInfo> OnFired { get; private set; }
}

...其中&#39; FamilyName&#39;就像“常见的WPF控件”一样。这样经理就知道每个项目的放置位置。它们都共享一个共同的工具提示策略和上下文菜单。

我的 GUESS 是Visual Studio使用Event Aggregator来触发树项上的命令。这是一个猜测,但如果他们使用其他东西,我不会感到惊讶。我发布的课程使用了一个Action委托,因为如果没有要求,我不想把整个Prism的东西拖到答案中。

撕下的窗户来自内部开发的本土组件。