Как остановить смещение холста при нажатии правой кнопки мыши, чтобы отобразить контекстное меню? - PullRequest
1 голос
/ 04 июля 2019

Я работаю над рисованием карты с использованием фигур и добавляю их затем на холст. Я должен показывать ContextMenu, когда MouseRightButtonDown, но при нажатии правой кнопки мыши на холсте происходит смещение, так как я могу остановить это смещение ?!

private void MainCanvas_MouseDown(object sender, MouseButtonEventArgs e)
        {
            if (e.ChangedButton == MouseButton.Right)
            {
                Canvas c = sender as Canvas;
                ContextMenu contextMenu = c.ContextMenu;
                contextMenu.PlacementTarget = c;
                contextMenu.IsOpen = true;
                e.Handled = true;
            }
        }
<Canvas x:Name="MainCanvas"  Uid="parentCanvas"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MouseDown="MainCanvas_MouseDown">

                <Canvas.ContextMenu >
                    <ContextMenu>
                        <MenuItem Name="CzechRepublic"
                        Header="Czech Republic"/>

                        <MenuItem Name="MiddleEurope"
                        Header="Middle Europe"/>

                        <MenuItem Name="Europe"
                        Header="Europe"/>

                        <MenuItem Name="WholeMap"
                        Header="Whole Map"
                        Click="WholeMap_Clicked"/>

                        <Separator />

                        <MenuItem Name="Settings"
                        Header="Settings"
                        Click="Settings_Clicked"/>
                    </ContextMenu>
                </Canvas.ContextMenu>

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