Предоставление стеку панели того же LinearGradientBrush, что и на панели инструментов по умолчанию
У меня два ToolBar
s бок о бок (я должен был сделать это, чтобы выровнять кнопки вправо и влево) Но теперь мне нужно добавить текст, который можно выровнять вправо влево или по центру между обеими панелями инструментов. Я добавил текст в TextBlock
внутри StackPanel
расположен на Grid
на второй позиции (между панелями инструментов) и, конечно, это создало разрыв между обеими панелями инструментов (стековая панель, конечно, не имеет такой же стиль, как панель инструментов).
Я хотел бы скопировать панель инструментов LinearGradientBrush
на моей панели стека, так что она выглядит так же, как моя панель инструментов. Смысл в том, чтобы вещь выглядела как ОДНА панель инструментов.
Есть ли способ получить ToolBar
Style
или воссоздать его с LinearGradientBrush
определение, и если да, то как?
3 ответа
Вот один из способов, которым вы могли бы сделать это. Скажите, что одна из ваших панелей инструментов называется "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>
В случае, если вы просто хотели использовать это вместо привязки.:)
Шаблоны и стили по умолчанию доступны на MSDN, вы, вероятно, могли бы извлечь соответствующие биты оттуда.
Я обнаружил проблему при выполнении точно такой же вещи в приложении. При запуске того же приложения на компьютере с XP, что и на компьютере с Vista, я обнаружил, что разница в высоте между двумя панелями инструментов составляет 2 пикселя.
Чтобы обойти это, я в итоге создал одну StackPanel, в которой размещались два объекта панели инструментов (устанавливая прозрачный фон).
Это обеспечило одинаковый внешний вид между двумя ОС (в то время, когда компания работала с обеими), а также поможет вам в том случае, если одна из ваших панелей инструментов вырастет по высоте без другой.