默認wpf MenuItem(在菜單上)是由控件構成的。像這樣:
grid;外矩形; BG-矩形;內的矩形; dockpanel;彈出。我可以用默認樣式覆蓋/替換子項目的屬性嗎?
該碼頭板依次包括:
contentpresenter [icon];路徑; contentpresenter [文本]
的contentpresenter [文本]由TextBlock
控制的。
我想達到的目標是定義一個Style
,儘可能簡單,要改變這種TextBlock
的VerticalAlignment
屬性,但僅適用於MenuItem
的TextBlock
,不是一般的。
<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
在運行時拋出TargetInvocationException
(來自NullReferenceException
)。
當它可能應該是一個通用的解決方案,像FindChildControl?!
它是一個項目上下文菜單或菜單? – Nitin
@Gerard,你是否設法解決你的問題? – sexta13