0

我有两个ToolBar并排的(我必须这样做,以便我可以左右对齐按钮)但是现在,我必须添加一些可以在两个工具栏之间左右对齐或居中对齐的文本。我在第二个位置(工具栏之间)的aTextBlock中添加了文本,当然,它在两个工具栏之间创建了一个间隙(当然,stackPanel 与工具栏的样式不同)。StackPanelGrid

我想LinearGradientBrush在我的堆栈面板上复制工具栏,使其看起来与我的工具栏相同。关键是让东西看起来像一个工具栏。

有没有办法通过定义来获取ToolBar Style或重新创建它LinearGradientBrush,如果是这样,如何?

4

3 回答 3

2

这是您可以做到的一种方法。假设您的工具栏名称之一是“toolBar”。Background将上的属性绑定到上StackPanelBackground属性,ToolBar如下所示:

<StackPanel Background="{Binding Path=Background, ElementName=toolBar}" />

希望有帮助!:)

编辑:

ToolBar 您可以在此处查看控制模板。

使用的LinearGradientBrush外观如下:

<LinearGradientBrush x:Key="DarkBrush" StartPoint="0,0" EndPoint="0,1">
  <GradientBrush.GradientStops>
    <GradientStopCollection>
      <GradientStop Color="#FFF" Offset="0.0"/>
      <GradientStop Color="#AAA" Offset="1.0"/>
    </GradientStopCollection>
  </GradientBrush.GradientStops>
</LinearGradientBrush>

如果您只想使用它而不是绑定。:)

于 2011-04-06T16:07:08.080 回答
0

MSDN上提供了默认模板和样式,您可能可以从那里提取相关位。

于 2011-04-06T15:55:21.243 回答
0

在应用程序中执行完全相同的操作时,我发现了一个问题。当我在 XP 机器上运行与在 Vista 机器上相同的应用程序时,我发现两个工具栏之间的高度有 2 个像素的差异。

为了解决这个问题,我最终创建了一个 StackPanel,其中包含两个工具栏对象(将背景设置为透明)。

这确保了两个操作系统之间的外观和感觉是相同的(在公司同时运行这两个操作系统时),并且如果您的一个工具栏在没有另一个工具栏的情况下增加了高度,也将为您提供帮助。

于 2011-07-07T04:58:53.117 回答