如果菜单定义如下:
<Menu>
<MenuItem Header="Stuff" />
</Menu>
呈现时,MenuItem中的ContentPresenter将以如下内容结束:
<TextBlock Text="{Binding}" />
这意味着它继承了TextBlock的默认样式,这并不总是可取的。
<MenuItem>
<MenuItem.Header>
<TextBlock Text="Stuff" Style="{DynamiResource MyStyle}" />
</MenuItem.Header>
</MenuItem>
但这将是一个恼人的要求。
我知道在WPF的神奇之处,有一个转换器或者其他什么东西正在获取String类型的内容,并创建一个使用TextBlock的DataTemplate,但是我找不到这个地方。我想一定有办法拦截魔法,但是因为我找不到魔法发生的地方,我就不知道怎么拦截它。