Чтобы достичь того, что вы ищете, я думаю, вам нужно определить внутренние Style
s в Style.Resources
.Это заставит все Button
в Grid
подобрать «внутренний» Style
, если они явно не используют другое Style
<Window.Resources>
<Style x:Key="MyStyle">
<Style.Resources>
<!-- Only inner buttons -->
<Style TargetType="Button">
<Setter Property="Background" Value="Red" />
</Style>
</Style.Resources>
</Style>
</Window.Resources>
<Grid Style="{StaticResource MyStyle}">
<Button Content="Go" Margin="29,36,385,239" />
</Grid>
, поскольку Button.Background
неприсоединенное свойство (в отличие, например, TextBlock.Foreground
), Background
не будет применено к Button
в Grid
.
Но что касается "Почему выбор Grid
до Background
"Я не мог вам сказать.Это похоже на ошибку для меня. Фон для Button
наследуется от Control
, а Фон для Grid
наследуется от Panel
, поэтому, насколько я вижу, это значение не должнобудет использоваться Grid
, но я могу что-то упустить
Кроме того, вы получите следующую ошибку, если попытаетесь установить Button.Background
непосредственно на Grid
ошибка MC3015: присоединенное свойство 'Button.Background' не определено для 'Grid' или одного из его базовых классов.