我正在开发一个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
。
答案 0 :(得分:1)
您试图更改(new MainPage())
对象中的Xpage2,而不是使用现有的MainPage对象。
MainPage mainpage = new MainPage();
请勿创建新的MainPage对象,因为它将不包含导航时创建的对象。而是在导航到如下所示的page2时传递现有对象
CoreApplicationView newView = CoreApplication.CreateNewView();
await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
.....
Frame.Navigate(typeof(Page2),this) // this means existing MainPage object.
....
}
然后通过在e.parameter
事件中使用OnNavigatedTo
来接收现有对象。
MainPage mainpage;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
mainpage = e.Parameter as MainPage;
base.OnNavigatedTo(e);
}
现在您可以设置mainpage.Xpage2 = ptr.X;
,它将反映在现有对象中。