2016-11-20 83 views
3

我想從我的UWP中的後臺任務訪問DisplayInformation類,該任務將圖像從原始分辨率調整爲用戶屏幕大小,以便可以將其設置爲壁紙。UWP中的DisplayInformation後臺任務

但是,當我嘗試使用DisplayInformation.GetForCurrentView()時,會引發異常,說該方法必須從與CoreWindow關聯的線程中調用。我怎樣才能避免這種情況?

任何解決方案都可以工作,只要它能以原始像素爲單位給出用戶屏幕的完整寬度和高度。

+0

「用戶的屏幕」不明確。可能有多個屏幕(PC多用戶,手機連續)。可以有無數的屏幕(HoloLens)。這就是爲什麼你需要一個核心窗口。所以系統知道你在詢問哪個屏幕。 –

回答

5

此API需要CoreWindow,因爲您的系統上可能有多個顯示器,並且需要知道選擇哪一個(它選擇當前顯示窗口的顯示器)。最好的解決方案是在前臺應用程序運行時查詢屬性,然後保存它們以備後用。 (當然,如果用戶有兩個或更多不同大小的顯示器,並且你選擇了「錯誤」的顯示器,或者他們升級了顯示器等,但這是你能做到的最好的),這並不是完美的。

+0

在這種情況下,是否可以簡單地獲取所有附加顯示的列表,並將圖像合併到最大的顯示? – 333

+1

HoloLens按需創建顯示。沒有這樣的東西作爲所有顯示器的列表,因爲它們的數量是無限的。 (宇宙中任何平坦的表面都可以成爲顯示器。) –

+0

@RaymondChen好的,謝謝 – 333