首页 技术 正文
技术 2022年11月6日
0 收藏 439 点赞 1,131 浏览 1468 个字

 之前看到以及其它应用都有调节屏幕亮度的功能,还以为MS有相关的API,就去MSDN找了下,但是怎么都找不到。今天突然想到做自定义MessageBox时,由于要突出弹出框部分,所以会改变LayoutRoot的opacity属性,以达到屏幕暗下来的效果,于是马上试了下,结果是可行的。添加一个Slider,并将其Value熟性绑定到LayoutRoot的Opcity属性上,这样一来,在滑动Slider时,LayoutRoot的Opcaity就会改变,也就达到了我们想要的效果。代码很也简单:

<Grid x:Name="LayoutRoot" Background="Transparent" Opacity="{Binding ElementName=slider, Path=Value}" ><Slider x:Name="slider" Height="100" Minimum="0.1"  Maximum="1" Value="1"/>

  由于之前认为这个只能改变当前的Opacity,所以又想了一个方法,利用Behavior,这个东东真是让我爱不释手啊。具体思路就是去的当前app的PhoneApplicationFrame,它也包含一个Opcity的依赖属性,所以我们可以从这一点入手。代码也很简单:

public class ChangeBrightnessBehavior : Behavior<Slider>{    PhoneApplicationFrame frame;     protected override void OnAttached()    {        base.OnAttached();        this.AssociatedObject.ValueChanged += AssociatedObject_ValueChanged;    }     void AssociatedObject_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)    {        if (frame == null)            frame = App.Current.RootVisual as PhoneApplicationFrame;        frame.Opacity = e.NewValue;    }     protected override void OnDetaching()    {        this.AssociatedObject.ValueChanged -= AssociatedObject_ValueChanged;        frame = null;        base.OnDetaching();    }}

  使用的时候如果闲前台添加行为太麻烦,还可以使用后置代码进行添加:

  1System.Windows.Interactivity.Interaction.GetBehaviors(slider).Add(new ChangeBrightnessBehavior());

  Ps:注意引入相应的命名空间,slider的最小值设为0.1是因为当Opacity值为0时,元素是不可见的,屏幕全黑了,连slider都看不见了,UE就不好了,建议稍微设高一点。

  本文来自hamguy博客,原文地址:http://www.hamguy.info/?p=533

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,474
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,889
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,724
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,479
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,118
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,278