Предоставление стеку панели того же LinearGradientBrush, что и на панели инструментов по умолчанию - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть два ToolBar бок о бок (я должен был сделать это, чтобы выровнять кнопки вправо и влево) Но теперь мне нужно добавить текст, который можно выровнять вправо влево или по центру между обеими панелями инструментов.Я добавил текст в TextBlock внутри StackPanel, расположенном на Grid во второй позиции (между панелями инструментов), и, конечно, он создал зазор между обеими панелями инструментов (панель стека не имеет такой жестиль как панель инструментов, конечно).

Я хотел бы скопировать панель инструментов LinearGradientBrush на моей панели стека, чтобы она выглядела так же, как моя панель инструментов.Смысл в том, чтобы вещь выглядела как ОДНА панель инструментов.

Есть ли способ получить ToolBar Style или воссоздать его с определением LinearGradientBrush, и если да, то как?

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

Вот один из способов, которым вы могли бы это сделать. Скажите, что одна из ваших панелей инструментов называется "toolBar". Свяжите свойство Background в StackPanel со свойством Background в 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>

В случае, если вы просто хотели использовать это вместо привязки. :)

0 голосов
/ 07 июля 2011

Я обнаружил проблему, когда делал то же самое в приложении. При запуске того же приложения на компьютере с XP, что и на компьютере с Vista, я обнаружил, что разница в высоте между двумя панелями инструментов составляет 2 пикселя.

Чтобы обойти это, я в итоге создал одну StackPanel, в которой размещались два объекта панели инструментов (установив прозрачный фон).

Это обеспечило одинаковый внешний вид между двумя ОС (в то время, когда компания работала с обеими), а также поможет вам в том случае, если одна из ваших панелей инструментов вырастет по высоте без другой.

0 голосов
/ 06 апреля 2011

Шаблоны и стили по умолчанию доступны на MSDN , вы, вероятно, можете извлечь соответствующие биты оттуда.

...