0
我有下面的XAML定義在WPF中的文本菜單:WPF文本菜單上結合工程右鍵單擊但不左鍵點擊
<Grid Name="grid">
<Button x:Name="settingsButton" DockPanel.Dock="Left" Content="Settings" Click="SettingsButtonClicked">
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header ="Column Chooser">
<MenuItem IsCheckable="true" Header="A" IsChecked="{Binding Path=IsAChoosen}"></MenuItem>
<MenuItem IsCheckable="true" Header="B" IsChecked="{Binding Path=IsBChoosen}"></MenuItem>
<MenuItem IsCheckable="true" Header="C" IsChecked="{Binding Path=IsCChoosen}"></MenuItem>
</MenuItem>
</ContextMenu>
</Button.ContextMenu>
</Button>
</Grid>
的結合工作正常,如果我在彈出的右鍵菜單通常從右鍵點擊。
但是我希望在左鍵單擊按鈕而不是右鍵單擊時顯示contextmenu。所以我有以下代碼來做到這一點:
public partial class SettingsView : UserControl
{
public SettingsView()
{
InitializeComponent();
settingsButton.MouseRightButtonDown += SettingsButtonOnMouseRightButtonDown;
}
private void SettingsButtonOnMouseRightButtonDown(object sender, MouseButtonEventArgs mouseButtonEventArgs)
{
settingsButton.ContextMenu.Visibility = Visibility.Hidden;
}
private void SettingsButtonClicked(object sender, RoutedEventArgs e)
{
settingsButton.ContextMenu.Visibility = Visibility.Visible;
settingsButton.ContextMenu.PlacementTarget = sender as Image;
settingsButton.ContextMenu.IsOpen = true;
}
}
當我這樣做的綁定不起作用。任何人都知道它爲什麼它與右鍵點擊工作,但不是當我強迫它左鍵點擊?
也許是因爲你設置'PlacementTarget'爲null。 '發送者'將'按鈕'類型而不是'圖片' – dkozl
這就是答案。 –