Я думаю, вы должны стилизовать меню и пункты меню отдельно. MenuItem
- это HeaderedContentControl
, а его свойство Header - не TextBlock
, а object
, поэтому стиль TextBlock на него не повлияет.
Вы также можете попробовать изменить этот стиль на целевой Control
вместо TextBlock. (Элемент управления - это место, где определены Foreground
и Background
.) Я не могу с уверенностью сказать, что это будет работать, но если это произойдет, то каждый элемент управления (TextBlocks, MenuItems, Buttons ...) эти цвета фона и переднего плана.
Кроме того, вы можете рассмотреть возможность использования BasedOn
, чтобы вы могли «наследовать» стили. Если вы этого не сделаете, то стили, определенные выше по иерархии, не будут влиять на элементы управления, стиль которых определен ниже в иерархии. В основном, нижние маскируют более высокие, если вы не использовали BasedOn
. Используйте это следующим образом:
BasedOn="{StaticResource {x:Type <your type here>}}"