现在的位置: 首页 > 综合 > 正文

子窗体覆盖层的颜色和透明度更改

2012年02月01日 ⁄ 综合 ⁄ 共 1775字 ⁄ 字号 评论关闭

      这两天貌似比较轻松,主要是自己去看示例,可是无聊至极啊,我宁愿做个程序或项目。在不会中探究好过盲目的看。今天先上篇简单的。

      接触Silverlight项目这么久,最让我惊喜的是里面的子窗体,太方便了。只要在父窗体中实例化子窗体,然后show()就可以了,效果就是我之前贴出来的登陆窗体的效果,贴上来再看下。为什么让我惊喜呢,因为我在之前用05的版本的时候,为了做这个效果,麻烦死了,要自己写弹出层,在适当的时候隐藏显示层,太烦。现在方便多了。

      有时候会觉得它自带的有些不太好的地方,比如说覆盖层颜色不喜欢。这些是可以更改的,只要在子窗体的代码中写这几段就可以了
            OverlayOpacity = 0.5;    //覆盖层透明度更改

            //颜色更改
            SolidColorBrush sob = new SolidColorBrush();
            sob.Color=Color.FromArgb(255,0,0,255);
            OverlayBrush = sob;   

      很简单吧,那来点好玩的吧。在子窗体上面添加一个Slider控件。.xaml代码如下:

<Slider x:Name="Slider1" IsEnabled="True" Maximum="1" Minimum="0" Value="{Binding OverlayOpacity,Mode=TwoWay}" Width="200" Height="28" Margin="129,99,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" />最小值为零,最大值为一,value值绑定OverlayOpacity,Mode一定要是TwoWay,OneWay与TwoWay的区别类似于VS05中的Eval和Bind,OneWay只读,TwoWay读写。先别急着运行,在后台代码即.xaml.cs文件中一定要加上这句this.DataContext = this;要不然OverlayOpacity的值绑定不上去。现在可以运行了,自己看下效果吧。

      再来,在子窗体中添加一个ComboBox,代码如下:

      再运行下看看呢。

抱歉!评论已关闭.