Как получить положение мыши на двух экранах - PullRequest
0 голосов
/ 31 декабря 2018

Я занимаюсь разработкой приложения UWP, которое включает две страницы окна на двух дисплеях.Я хочу получить положение мыши (x, y) на дополнительном экране в текстовый блок на первом экране в то же время.

Я делаю следующий код, но в результате просто "x = 0",

 MainPage.xaml.cs

    public double Xpage2;
    textblock.Text = $" X = {Xpage}";

Page2.xaml.cs

MainPage mainpage = new MainPage();

private void CoreWindow_PointerMoved(CoreWindow sender, PointerEventArgs args)

        {
            Point ptr = args.CurrentPoint.Position;
            mainpage.Xpage2 = ptr.X;
        }

Как я могу получить положение мыши (Xpage) на другом экране?

Мне нужно решение, чтобы получить значение позиции Point ptr от другогоКласс к переменной Xpage2, одновременно.

1 Ответ

0 голосов
/ 31 декабря 2018

Вы пытаетесь изменить Xpage2 в объекте (new MainPage()) вместо использования существующего объекта MainPage.

MainPage mainpage = new MainPage ();

Несоздайте новый объект MainPage, так как он не будет содержать объект, созданный во время навигации.Вместо этого передайте существующий объект при переходе на страницу 2, как показано ниже

В MainPage

CoreApplicationView newView = CoreApplication.CreateNewView();
await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
   .....
   Frame.Navigate(typeof(Page2),this) // this means existing MainPage object.
   ....
}

Затем получите существующий объект, используя e.parameter в событии OnNavigatedTo.

В Page2

MainPage mainpage;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
   mainpage = e.Parameter as MainPage;
   base.OnNavigatedTo(e);
}

Теперь вы можете установить mainpage.Xpage2 = ptr.X; Это будет отражаться в существующем объекте.

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