1. 程式人生 > >win10 uwp ApplicationView

win10 uwp ApplicationView

exit 秘密 wcc cor article cap itl gpo img

原文:win10 uwp ApplicationView

本文和大家介紹一個重要的類,他可以用來設置窗口,如設置啟動大小,設置是否允許截圖,是否進入全屏,所有和窗口有關的,都可以在他這裏設置。

可以使用簡單獲取ApplicationView applicationView = ApplicationView.GetForCurrentView(); ,註意,他是不能構造創建

先從屬性開始

第一個屬性是 AdjacentToLeftDisplayEdge ,判斷是不是靠近屏幕左邊,在和屏幕只有20像素之內就是,但是其他包括窗口在屏幕外就不是。和他差不多的有屬性 AdjacentToRightDisplayEdge 判斷是否靠近右邊緣。

這個屬性和獲得窗口變化一起使用。

如何獲得窗口大小變化?使用 CoreWindow.GetForCurrentThread().SizeChanged 可以獲得窗口大小變化,可以獲得是否靠近屏幕左邊。

第二是 DesiredBoundsMode 感覺沒什麽用,指示框架用於排列窗口內容邊界值

  • FullScreenSystemOverlayMode 全屏響應手勢的模式,包括手勢可調用系統覆蓋(標題 任務欄), 邊緣手勢可調用臨時 UI,而此UIElement反過來可調用對於該邊緣的系統覆蓋

  • 獲取窗口 ID,使用 applicationView.Id ,對於UWP可以使用多個窗口,因為需要區分是哪個窗口,所以就可以使用這個。

  • 如何判斷是否進入全屏?使用 applicationView.IsFullScreenMode 。判斷是否全屏的功能,和他相同的 applicationView.IsFullScreen 也可以,但是這個不推薦

  • 如何獲得窗口處於鎖屏? applicationView.IsOnLockScreen 我自己嘗試鎖屏但是依舊無法獲得,如果知道這個是什麽,請告訴我。

  • 如何設置可以不截圖?有些應用需要有秘密,不可以被截圖,可以使用applicationView.IsScreenCaptureEnabled 如果設置 false,所有應用難以對程序截圖。如果對於顯示密碼或其他的頁面,是要求打開這個設置,也就是在輸入密碼時,是需要設置不可截圖,如果設置了,那麽截圖是黑色,無法獲得。在不顯示密碼時,可以設置為 true,這時可以截圖。

    首先做一個簡單的按鈕,在點擊他就設置為false,不可截圖。在點擊前,使用 Q 截圖,發現可以

    技術分享圖片

    點擊之後,截圖看到的

    技術分享圖片

    如果設置了,可以看到,但是不可以獲取,可以對信息安全要求高的程序進行使用,但是設置了性能可能沒有之前好。

    關於不可截圖,代碼:https://code.msdn.microsoft.com/windowsapps/Disable-screen-capture-00efe630

    這個對於應用內截圖是不是還可以使用,我還沒去試,如果有大神做了,可以的話,請告訴。

  • 如何獲取窗口是橫向顯示?applicationView.Orientation 可以獲取窗口是寬度大於高度,也就是橫向,還是相反。

    不是使用屏幕反向,是軟件的寬度等,是不是看起來是橫向

  • PreferredLaunchViewSize 這個屬性是設置窗口大小使用,在設置 PreferredLaunchWindowingMode 為 PreferredLaunchViewSize 可以使用,使用方法:

           ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
            ApplicationView.PreferredLaunchViewSize = new Size(100, 100);
            如果設置無效,那麽在最前設置             applicationView.SetPreferredMinSize(new Size(100,100)); 

PreferredLaunchWindowingMode ms建議使用 auto

  • 如果對於多窗口程序,可以設置 TerminateAppOnFinalViewClose 在關閉所有窗口關閉程序

  • 如何設置窗口標題?使用 applicationView.Title = “標題” 設置會在標題顯示 “標題-程序”

  • 設置標題欄顏色 applicationView.TitleBar 可以獲得標題欄,可以通過設置屬性自定義標題欄

    • BackgroundColor 技術分享圖片

    • ButtonBackgroundColor 技術分享圖片

  • 獲取窗口可見區 applicationView.VisibleBounds ,通過 applicationView.VisibleBoundsChanged 可以知道隱藏或顯示標題欄會改變窗口可見大小的方法

  • 退出全屏 applicationView.ExitFullScreenMode(); 只有在桌面才可以使用

  • 進入全屏 applicationView.TryEnterFullScreenMode()

  • 修改窗口大小 applicationView.TryResizeView() 只有桌面才可以使用

  • 全屏顯示標題欄 applicationView.ShowStandardSystemOverlays()

參見:https://docs.microsoft.com/en-us/uwp/api/windows.ui.viewmanagement.applicationview

技術分享圖片
本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名林德熙(包含鏈接:http://blog.csdn.net/lindexi_gd ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發布。如有任何疑問,請與我聯系。

win10 uwp ApplicationView