Как отмечено в другом ответе, панель инструментов автоматически применяет свои собственные стили ко многим / наиболее типичным элементам управления, добавленным к ней.
В качестве альтернативы захвату его ключей стиля или применению ваших собственных стилей к элементам управления вручную вы можете вместо этого переопределить его метод, который в первую очередь устанавливает его внутренние стили. Простой пример:
public class LessIsMoreToolbar : ToolBar
{
protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{
// Nada
}
}
а затем используйте <local:LessIsMoreToolbar>
в своем XAML вместо <Toolbar>
.
Обратите внимание, что здесь PrepareContainerForItemOverride()
специально НЕ вызывает base.PrepareContainerForItemOverride () `. Это то, что исключает установку стилей. Вы можете самостоятельно просмотреть базовую версию этого метода, чтобы убедиться, что это не устраняет ничего, что вам нужно.
Одно предостережение заключается в том, что PrepareContainerForItemOverride
определяется ItemsControl, который похож на прадеда Toolbar
. Его версия этого метода запускает некоторые другие Prepare...
случаи, которые, вы также должны быть осторожны, ничего не сломают. Вы не можете (или, возможно, не должны) просто вызвать эту версию метод напрямую.
Но, в конце концов, если это сработает для вас, то это хороший простой подход.
person
StayOnTarget
schedule
17.04.2020