Windows Phone APP中禁用截图

原文:Windows Phone APP中禁用截图

Windows Phone 8 有系统自带的截图功能,快捷键:电源键+Win键,可以随意截图。

Windows Phone 更新GDR2后新增了一个隐藏功能,允许APP禁用截图功能。

1
PhoneApplicationPage.IsScreenCaptureEnabled

 这个隐藏的属性需要通过反射来访问和修改状态。

public static bool CanSetScreenCaptureEnabled(this PhoneApplicationPage page)
        {
            return Environment.OSVersion.Version >= new Version(8, 0, 10322);
        }

        public static void SetScreenCaptureEnabled(this PhoneApplicationPage page, bool enabled)
        {
            var propertyInfo = typeof(PhoneApplicationPage).GetProperty("IsScreenCaptureEnabled");

            if (propertyInfo == null)
            {
                throw new NotSupportedException("Not supported in this Windows Phone version!");
            }

            propertyInfo.SetValue(page, enabled);
        }

        public static bool GetScreenCaptureEnabled(this PhoneApplicationPage page)
        {
            var propertyInfo = typeof(PhoneApplicationPage).GetProperty("IsScreenCaptureEnabled");

            if (propertyInfo == null)
            {
                throw new NotSupportedException("Not supported in this Windows Phone version!");
            }

            return (bool)propertyInfo.GetValue(page);
        }
    }

调用CanSetScreenCaptureEnabled()方法检测Windows Phone版本是否符合要求(version 8.0.10322以上)。符合条件,然后就通过扩展方法GetScreenCaptureEnabled()和SetScreenCaptureEnabled()来修改PhoneApplicationPage.IsScreenCaptureEnabled属性。
使用:

      // 构造函数
        public MainPage()
        {
            InitializeComponent();

            if (this.CanSetScreenCaptureEnabled())
            {
                this.SetScreenCaptureEnabled(false);
            }
        }

目前在真机上测试有效,没弄懂模拟器如何像真机一样截图,所以模拟器上没成。

效果如下图

 

以后就有些东西不能截图了( ╯□╰ )

 对了,需要看原文的戳:Disabling screenshot functionality in a Windows Phone app  。

Windows Phone APP中禁用截图,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。