Как установить диалоговое окно в положение курсора? - PullRequest
0 голосов
/ 20 апреля 2020

Я разрабатываю приложение с WPF и создаю в нем пользовательские элементы управления. Когда я нажимаю на правую кнопку мыши, я хочу показать диалоговое окно в той же позиции, что и курсор, но я не понимаю, как это сделать.

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Я уверен, что то, что вы ищете, уже доступно и называется ContextMenu.

        <Button Content="Right-click me!">
            <Button.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="Menu item 1" />
                    <MenuItem Header="Menu item 2" />
                    <Separator />
                    <MenuItem Header="Menu item 3" />
                </ContextMenu>
            </Button.ContextMenu>
        </Button>

enter image description here

См. Следующую ссылку:

https://www.wpf-tutorial.com/common-interface-controls/contextmenu/

0 голосов
/ 20 апреля 2020

Следующий код открывает Window при нажатии правой кнопки мыши. Window расположен по указателю мыши:

MainWindow.xaml.cs

partial class MainWindow : Window
{
  protected override void OnMouseRightButtonUp(MouseButtonEventArgs e)
  {
    base.OnMouseRightButtonUp(e);

    var mousePointerPosition = PointToScreen(e.GetPosition(this));
    var dialog = new Window() 
    {
      Top = mousePointerPosition.Y, 
      Left = mousePointerPosition.X, 
      Width = 100, 
      Height = 100
    };
    dialog.ShowDialog();
  }
}
...