默认 wpf MenuItem(在菜单上)由大约控制构成。像这样:
网格;外矩形;bg-矩形;内矩形;码头面板;弹出。
停靠面板依次包括:contentpresenter [
icon]; 小路; 内容演示者[文本]
contentpresenter [text]由一个TextBlock
控件组成。
我想要实现的是Style
尽可能简单地定义 a 来更改VerticalAlignment
this 的属性TextBlock
,但仅限于TextBlock
in MenuItem
,而不是一般情况下。
<Style x:Key ="TextBlockCenterStyle" TargetType="{x:Type TextBlock}">
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style TargetType="MenuItem">
<Setter Property="FontSize" Value="11" />
<Setter Property="ItemContainerStyle" Value="TextBlockCenterStyle" />
<Style.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</Style.Resources>
</Style>
我试过Style.Resources
了ItemContainerStyle
。
无法让它工作。ItemContainerStyle
throws TargetInvocationException
(from NullReferenceException
) 在运行时。
如果可能,它应该是一个通用的解决方案,比如 FindChildControl?!