WPF: Показать панель при щелчке правой кнопкой мыши - PullRequest
0 голосов
/ 28 апреля 2010

Я пытаюсь, чтобы 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 Ответ

2 голосов
/ 28 апреля 2010

Взгляните на контекстное меню.

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

                    <MenuItem Header="Item ▼"/>

                    <MenuItem Header="Permute ▼"/>

                    <MenuItem Header="Generate ▼"/>

</ContextMenu>

Вы можете даже связать команды с пунктами меню, а также создать подменю.

Для получения дополнительной информации:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...