मेरे पास अनुसरण है:
<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
मेरे पीछे कोड में निम्नलिखित हैं:
private void AddButton_OnClick(object sender, RoutedEventArgs e)
{
AddButton.ContextMenu.PlacementTarget = this;
AddButton.ContextMenu.IsOpen = true;
}
हालाँकि, जब मैं संदर्भ मेनू पर बायाँ-क्लिक करता हूँखाली है, लेकिन अगर मैं राइट क्लिक करता हूं तो यह पॉपुलेटेड है। यदि मैं PlacementTarget = इसे हटाता हूं, यदि मैं पहले राइट-क्लिक करता हूं, तो यह पॉपुलेटेड हो जाएगा जब मैंने क्लिक के रूप में अच्छी तरह से छोड़ दिया।
कोई विचार ?
उत्तर:
उत्तर № 1 के लिए 1मुझे ठीक लगा। सेटिंग के बजाय:
AddButton.ContextMenu.PlacementTarget = this;
करने के लिए सेट:
AddButton.ContextMenu.PlacementTarget = (UIElement)sender;