I am using Silverlight 4 and Q3 2010 SP1 controls for silverlight. I am trying to get the context menu to popup using the keyboard (the right click button located just left of the right hand ctrl key on my keyboard). The menu pops up fine, but so does the silverlight context menu. Is there a way to prevent the silverlight context menu from showing as well? The right mouse button works fine.
Here is my tree declaration:
Here is my tree declaration:
<
RadTreeView
x:Name
=
"nodeTree"
Grid.Row
=
"1"
IsDragDropEnabled
=
"True"
IsEditable
=
"True"
SelectionChanged
=
"nodeTree_SelectionChanged"
SelectionMode
=
"Single"
ItemsSource
=
"{Binding bocNodes}"
KeyDown
=
"TreeEntryControl_KeyDown"
>
<
RadTreeView.ItemTemplate
>
<
telerik:HierarchicalDataTemplate
ItemsSource
=
"{Binding ChildTree}"
>
<
TextBlock
Text
=
"{Binding nodename, Mode=OneWay}"
Foreground
=
"{StaticResource TextBrush}"
Margin
=
"3,0,0,0"
>
<
telerik:RadContextMenu.ContextMenu
>
<
telerik:RadContextMenu
x:Name
=
"treeContextMenu"
Opened
=
"treeContextMenu_Opened"
>
<
telerik:RadMenuItem
x:Name
=
"treeMenuAbove"
Header
=
"{Binding LStrings.ElectronicTemplates_AddAbove, Source={StaticResource Strings}}"
Click
=
"treeMenuItem_ClickAbove"
IsEnabled
=
"{Binding IsRoot, Converter={StaticResource myNotConverter}}"
></
telerik:RadMenuItem
>
<
telerik:RadMenuItem
x:Name
=
"treeMenuChild"
Header
=
"{Binding LStrings.ElectronicTemplates_AddChild, Source={StaticResource Strings}}"
Click
=
"treeMenuItem_ClickChild"
></
telerik:RadMenuItem
>
<
telerik:RadMenuItem
x:Name
=
"treeMenuBelow"
Header
=
"{Binding LStrings.ElectronicTemplates_AddBelow, Source={StaticResource Strings}}"
Click
=
"treeMenuItem_ClickBelow"
IsEnabled
=
"{Binding IsRoot, Converter={StaticResource myNotConverter}}"
></
telerik:RadMenuItem
>
<
telerik:RadMenuItem
x:Name
=
"treeRename"
Header
=
"{Binding LStrings.ElectronicTemplates_Rename, Source={StaticResource Strings}}"
Click
=
"treeMenuItem_Rename"
IsEnabled
=
"{Binding IsRoot, Converter={StaticResource myNotConverter}}"
></
telerik:RadMenuItem
>
<
telerik:RadMenuItem
x:Name
=
"treeMap"
Header
=
"{Binding LStrings.ElectronicTemplates_Map, Source={StaticResource Strings}}"
Click
=
"treeMenuItem_Map"
IsEnabled
=
"{Binding IsRoot, Converter={StaticResource myNotConverter}}"
></
telerik:RadMenuItem
>
</
telerik:RadContextMenu
>
</
telerik:RadContextMenu.ContextMenu
>
</
TextBlock
>
</
telerik:HierarchicalDataTemplate
>
</
RadTreeView.ItemTemplate
>
<
RadreeView.ItemEditTemplate
>
<
DataTemplate
>
<
ce:CmpTextBox
Text
=
"{Binding nodename, Mode=TwoWay}"
IsLocked
=
"{Binding IsRoot}"
/>
</
DataTemplate
>
</
RadTreeView.ItemEditTemplate
>
</
RadTreeView
>
And here is my code for capturing the keydown event:
public static void TreeEntryControl_KeyDown(CmpTreeView MainControl, object sender, KeyEventArgs e)
{
RadTreeViewItem selected;
switch (e.Key)
{
case Key.Unknown:
if (e.PlatformKeyCode == 93)
{
var box = MainControl.SelectedContainer.ChildrenOfType<
TextBlock
>();
if (box != null && box.Count > 0)
{
var menu = RadContextMenu.GetContextMenu(box[0]);
if (menu != null)
{
menu.IsOpen = true;
e.Handled = true;
}
}
}
break;
}
}