WPF:右键单击显示面板

时间:2010-04-27 21:55:44

标签: c# wpf xaml

当用户右键单击控件时,我正在尝试在用户控件中的光标位置“出现”WPF ViewBox。现在,我有代码:

<!-- XAML -->
<Viewbox Width="100" Visibility="Collapsed" x:Name="actionBox">
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
        <Button>Item ▼</Button>
        <Button>Permute ▼</Button>
        <Button>Generate ▼</Button>
   </StackPanel>
</Viewbox>

/* C# */
private void setPanel_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    Point p = e.GetPosition(this);
    actionBox.Margin = new Thickness(p.X, p.Y, 0, 0);
    actionBox.Visibility = System.Windows.Visibility.Visible;
    actionBox.BringIntoView();
}

事件确实被解雇了,但似乎没有任何事情发生。 (MouseRightButtonDown="..."位于XAML文件的不同部分。)

如何在WPF中写这个?

1 个答案:

答案 0 :(得分:2)

查看上下文菜单。

<ContextMenu Name="cm" StaysOpen="true">

                    <MenuItem Header="Item ▼"/>

                    <MenuItem Header="Permute ▼"/>

                    <MenuItem Header="Generate ▼"/>

</ContextMenu>

您甚至可以将命令与菜单项绑定,也可以创建子菜单。

更多信息:

http://www.a2zdotnet.com/View.aspx?id=92