【Windows 10 應用開發】如何防止應用程序被截屏


今天老周只想跟大伙們分享一個小技巧,是的,小小的技巧,很簡單,保證你能學會的,要是學不會,可以考慮跳泰山。

有些時候,我們可能會想到不要讓應用程序界面上顯示的內容被截屏,要阻止應用界面呈現在截圖上,可以在 ApplicationView 類上找答案,因為這個行為是跟應用程序視圖有直接關系的。

我們只需要設置一個屬性就成了——IsScreenCaptureEnabled,如果允許程序被捕捉到,就設置為 true,要禁止被捕捉,設置為 false 就好了。簡單吧。

 

看一個例子,先看XAML布局。

        <Grid Margin="15">
            <Grid.RowDefinitions>
                <RowDefinition Height="auto"/>
                <RowDefinition/>
                <RowDefinition Height="auto"/>
            </Grid.RowDefinitions>
            <TextBlock Text="中國高富帥的形象代表" FontSize="25" HorizontalAlignment="Center" Margin="0,6"/>
            <Image Grid.Row="1" Margin="3" Source="Assets\1.png" />
            <CheckBox Grid.Row="2" Margin="0,8" Content="禁止被截屏" FontSize="18" HorizontalAlignment="Center" Checked="OnChecked" Unchecked="OnUnChecked"/>
        </Grid>

重點是 CheckBox 控件,我處理了它的 Checked 和 UnChecked 事件,如果它被選中,就禁止應用界面被捕捉;如果沒選中,就允許捕捉。

下面是實現代碼。

        ApplicationView appView = ApplicationView.GetForCurrentView();
        private void OnChecked(object sender, RoutedEventArgs e)
        {
            appView.IsScreenCaptureEnabled = false;
        }

        private void OnUnChecked(object sender, RoutedEventArgs e)
        {
            appView.IsScreenCaptureEnabled = true;
        }

 

來,看看效果。首先,CheckBox 是沒選中的,即允許截屏,這時候截取到的超清無水印圖片如下。

 

然后,我們選上 CheckBox 控件,再截屏,得到的是一片黑乎乎的東西。

 

這個示例很簡單,我就不提供源代碼了,大家完全可以自己動手的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM