/ / Il menu contestuale non viene visualizzato al primo tasto sinistro del mouse: wpf, xaml, menu di scelta rapida, code-behind

Il menu contestuale non è visualizzato sul primo LeftClick - wpf, xaml, contextmenu, code-behind

Ho i seguenti:

<telerik:RadButton Name="AddButton" DockPanel.Dock="Right"
Content="Add" HorizontalAlignment="Right"
Click="AddButton_OnClick" Padding="5,0,5,0">
<telerik:RadButton.ContextMenu>
<ContextMenu x:Name="addContextMenu"
ItemsSource="{Binding Path=AvailableTypesToAdd}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding Path=Name}"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type telerik:RadExpander}}, Path=DataContext.AddCommand}"
CommandParameter="{Binding}" />
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
</telerik:RadButton.ContextMenu

Nel codice dietro ho il seguente:

private void AddButton_OnClick(object sender, RoutedEventArgs e)
{
AddButton.ContextMenu.PlacementTarget = this;
AddButton.ContextMenu.IsOpen = true;
}

Tuttavia, quando I LeftClick è il menu di scelta rapidavuoto, ma se clicco con il tasto destro è popolato. Se rimuovo PlacementTarget = this, se clicco prima con il tasto destro, verrà inserito anche quando ho lasciato il clic.

Qualche idea ?

risposte:

1 per risposta № 1

Ho trovato la soluzione. Invece di impostare:

AddButton.ContextMenu.PlacementTarget = this;

impostato:

AddButton.ContextMenu.PlacementTarget = (UIElement)sender;