0
我有一個ContextMenu
,其中我將一個子菜單綁定到一組自定義對象。在點擊我發送一個命令綁定的對象作爲參數:MenuItem可點擊區域
<ContextMenu>
<MenuItem Header="Launch" ItemsSource="{Binding Profiles}">
<MenuItem.ItemTemplate>
<DataTemplate>
<MenuItem Command="{Binding DataContext.LaunchProfileCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ContextMenu}}}"
CommandParameter="{Binding}">
<MenuItem.Style>
<Style TargetType="MenuItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type MenuItem}">
<local:ProfileView IconSize="24" NameFontSize="10"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</MenuItem.Style>
</MenuItem>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
<MenuItem Header="Exit" Command="{Binding ExitCommand}"/>
</ContextMenu>
的問題是,不是MenuItem
(每在「配置文件」集合中的每個項目之一)的整個區域將觸發綁定的命令。只有紅色區域將觸發命令:
我曾嘗試沒有成功改變MenuItem
風格的Padding
和Margin
性能。
我該如何實現能夠點擊MenuItem
中的任意位置並且能夠觸發綁定命令?
注意:紅色區域對應我的自定義視圖:ProfileView
。此視圖的邊距設置爲0.
高亮停止在工作的MenuItems,它可以通過使用模板控件(Mahapps)引起的? – Sturm
@Sturm Right,控件模板處理它,並替換控件模板。我更新了我的版本以代替使用HeaderTemplate。如果你真的想完全消除現有的控件模板,你必須給你的新ControlTemplate一些觸發器來處理突出顯示等。 –
我可以通過添加樣式觸發器來解決這個問題:' '然後將我的控件放置在一個'Grid'中,背景爲「{TemplateBinding Background}」 –
Sturm