2010-08-04 85 views
1

我在这里有一个问题,我想制作一个多工具栏,它的工作原理与Visual Studio中的工具栏一样。toolbartray中的工具栏放置wpf

目前我正在做这样的

<ToolbarTray> 
    <Toolbar> 
     <Button x:Name="A"/> 
     <Button x:Name="B"/> 
     <Button x:Name="C"/> 
    </Toolbar> 
    <Toolbar> 
     <Button x:Name="D"/> 
     <Button x:Name="E"/> 
     <Button x:Name="F"/> 
    </Toolbar> 
</ToolbarTray> 

现在的问题是,我可以上下移动每个工具栏,但我永远不能将它们移动到正确的。你会发现当我们使用visual studio时,我们可以将每个工具栏自由放置在toolbartray中,1看起来像停靠在左边,而另一个看起来像停靠在右边,另一个我们可以放在中间的两个下面。

那么我该如何做到这一点?

感谢

回答

2

内置的WPF工具栏不支持浮动工具栏或用户定位工具栏。这是相当有限的,但我个人认为陪审团已经对该Office 2003式工具栏设计作出了判决。当工具栏四处移动或变得更糟时,用户感到非常沮丧,与父母分离。

如果您不介意重新实现大量布局逻辑,您可能从ToolBarTray派生出来并处理鼠标事件以调整包含在其中的ToolBar控件的布局。话虽如此,如果你想要一个更全功能的工具栏,我建议检查Developer Express的WPF组件行。我在CodePlex上没有看到任何您想要的东西。

+0

我真的不希望它是可停靠别的地方,我只是希望工具栏可以在工具栏托盘中自由移动。所以toolbartray可以放在固定的位置,但我希望toolbartray内的工具栏可以自由移动。 – dnr3 2010-08-04 05:09:45

+0

这就是我认为你的意思。 WPF不会默认这样做,所以你必须从ToolBarTray派生来使ToolBar可移动。 – Josh 2010-08-04 05:20:36

+0

啊,我看到了,我们会很难。 谢谢先生,我想我会将它标记为答案 – dnr3 2010-08-04 05:24:01

0

看来你可以设置属性“乐队”工具栏元素来设置使工具栏出现在托盘:

<ToolBarTray VerticalAlignment="Top" DockPanel.Dock="Top"> 
      <ToolBar Band="0"> 
+0

是的,但AFAIK,乐队属性是设置线,所以如果有2行,band = 1意味着它将被放置在第二行。我所要求的是水平放置,类似于visual studio toolbar – dnr3 2015-12-18 02:10:38

+0

如果为两个工具栏设置相同的Band(例如0),它们将依次保持在同一行(水平)。 – 2015-12-18 14:29:24

+0

是的,真的,但它不能自由移动,你有没有使用视觉工作室?在该应用程序中,您可以设置一个工具栏停靠在第一行的左侧,另一个工具栏停靠在第一行的右侧,其中间的空间位于中间 – dnr3 2015-12-21 07:25:50