我正在构建一个Windows通用SDK,它将检索用户和设备维度,并且我试图从非XAML(或相关)类中获取设备的屏幕大小。当我尝试获取边界时,我收到“HRESULT E_FAIL已从调用COM组件返回”。
var bounds = Window.Current.Bounds;
包含上述代码的''Dimensions'类是从App.xaml.cs文件的App
方法实例化的(通过几个父类),这对于获取当前窗口来说太快了吗?
答案 0 :(得分:2)
太快了。而不是提前缓存数据,我会在需要时查询它(实际上,您需要缓存以供调度程序外线程使用)。对于通用应用程序,您需要处理窗口大小更改和多个窗口。
如果您是特定于移动设备的,则应该能够在OnLaunched中获得Window边界,但对于SDK,处理CoreApplication.Activated事件将更加透明。你可以在App构造函数中连接它,然后在它触发时获取窗口详细信息,ActivationKind会告诉你它是一个窗口激活。