UWP:如何在单独的监视器中检索一秒 window 的大小和比例因子
UWP: how to retrieve the size and scale factor of a second window in a separate monitor
我有一个使用 AppWindow.TryCreateAsync
.
打开辅助 window 的 UWP 应用
我需要检测新创建的 window 的实际大小(以及可能的比例因子),以及托管第二个 window 的监视器的一些其他详细信息。 =14=]
通常,我使用DisplayInformation.GetForCurrentView()
,但这在以下情况下不起作用:
- 第一台显示器上的主应用 Window(例如分辨率 1024 x 768,比例因子 150%)
- 辅助 Window 在第二台显示器上(例如分辨率 1920 x 1080,比例因子 250%)
在这种情况下,DisplayInformation.GetForCurrentView()
returns 第一个监视器的值,其中托管了主应用 Window。
如何检索托管辅助 Window 的监视器的信息?
具体来说,secondary的实际大小window是最重要的信息,其他都是附属...
非常感谢!
我不知道您如何获得放置在通用监视器上的 AppWindow 的比例因子。
但是,如果您创建 AppWindow 将其内容包装到一个框架中,那么您可以使用 Frame.SizeChanged
事件来获取辅助 window:
的正确大小
UIElement myContent; // Create your content here
AppWindow myAppWindow = await AppWindow.TryCreateAsync();
Frame myContentFrame = new Frame();
myContentFrame.Content = myContent;
myContentFrame.SizeChanged += (object sender, SizeChangedEventArgs e)
{
// Here you can get the new size of the Frame
Size newFrameSize = Encoders.BuildLTSize(e.NewSize.Width, e.NewSize.Height);
// Update the UI as needed
UpdateView(newFrameSize);
};
我有一个使用 AppWindow.TryCreateAsync
.
我需要检测新创建的 window 的实际大小(以及可能的比例因子),以及托管第二个 window 的监视器的一些其他详细信息。 =14=]
通常,我使用DisplayInformation.GetForCurrentView()
,但这在以下情况下不起作用:
- 第一台显示器上的主应用 Window(例如分辨率 1024 x 768,比例因子 150%)
- 辅助 Window 在第二台显示器上(例如分辨率 1920 x 1080,比例因子 250%)
在这种情况下,DisplayInformation.GetForCurrentView()
returns 第一个监视器的值,其中托管了主应用 Window。
如何检索托管辅助 Window 的监视器的信息?
具体来说,secondary的实际大小window是最重要的信息,其他都是附属...
非常感谢!
我不知道您如何获得放置在通用监视器上的 AppWindow 的比例因子。
但是,如果您创建 AppWindow 将其内容包装到一个框架中,那么您可以使用 Frame.SizeChanged
事件来获取辅助 window:
UIElement myContent; // Create your content here
AppWindow myAppWindow = await AppWindow.TryCreateAsync();
Frame myContentFrame = new Frame();
myContentFrame.Content = myContent;
myContentFrame.SizeChanged += (object sender, SizeChangedEventArgs e)
{
// Here you can get the new size of the Frame
Size newFrameSize = Encoders.BuildLTSize(e.NewSize.Width, e.NewSize.Height);
// Update the UI as needed
UpdateView(newFrameSize);
};