一天一天学 windows phone 控件 之 Slider(十七)

Slider 是我们最常见的控件之一,看到最多的一般在两个地方 ,一个是声音的大小,一个是色域。

控制声音大小的网上很多,所以我们挑个控制颜色的,很多画图工具都有。明暗度什么的。

windows phone的 颜色一般采用 ARGB颜色 A 表示透明度,rgb 分别是 red ,green,blue 。种颜色的首先字母。值从0,255.

我们首先画个矩形,然后分别用4个slider控件来控制矩形的颜色。

页面的代码如下:

        <Grid x:Name="ContentPanel"
              Grid.Row="0"
              Margin="12,0,12,0">
            <StackPanel>
                <Rectangle Name="recBoard"
                           Width="480"
                           Height="300"
                           Fill="#fff"
                           Opacity="{Binding Path=Value,
                                             ElementName=sliderTran}" />
                <TextBlock>R</TextBlock>
                <Slider Name="sliderRed"
                        Maximum="255"
                        Minimum="0"
                        ValueChanged="sliderRed_ValueChanged" />
                <TextBlock>G</TextBlock>
                <Slider Name="sliderGreen"
                        Maximum="255"
                        Minimum="0"
                        ValueChanged="sliderGreen_ValueChanged" />
                <TextBlock>B</TextBlock>
                <Slider Name="sliderBlue"
                        Maximum="255"
                        Minimum="0"
                        ValueChanged="sliderBlue_ValueChanged" />
                <TextBlock>Transparency</TextBlock>
                <Slider Name="sliderTran"
                        Maximum="1"
                        Minimum="0"
                        Value="1" />
            </StackPanel>
        </Grid>

效果如图


然后我们切换到代码页面,构建Slider 控件移动的事件触发更改颜色

代码如下:

//初始化 
        byte red = 0;
        byte green = 0;
        byte blue = 0;
        private void sliderRed_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            red = Convert.ToByte(e.NewValue);
            Color color = Color.FromArgb(255, red, green, blue);
            SolidColorBrush scb = new SolidColorBrush(color);
            recBoard.Fill = scb;
        }

        private void sliderGreen_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            green = Convert.ToByte(e.NewValue);
            Color color = Color.FromArgb(100, red, green, blue);
            SolidColorBrush scb = new SolidColorBrush(color);
            recBoard.Fill = scb;
        }

        private void sliderBlue_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            blue = Convert.ToByte(e.NewValue);
            Color color = Color.FromArgb(100, red, green, blue);
            SolidColorBrush scb = new SolidColorBrush(color);
            recBoard.Fill = scb;
        }

OK 非常简单吧。三个事件分别控制 红绿蓝。透明度,我用了另外一种写法直接绑定到 属性Opacity来控制。

启动,模拟器,自己拖动下不同颜色来组成各种颜色。效果如图:

 

OK 基本上就这多。

源码下载地址:http://download.csdn.net/download/gongkepop/6379697

(写的不好请见谅,有不对请留言告知我,免得误人子弟。)


来点废话吧。停更了好久,说实话是因为自己的惰性。但是后来反省了下,做事情就应该做完。预备的后面还有3大章分别是 存储,网络通信,封装。今天开始争取天天更新,当教材更新完了,各位同学应该可以做些自己的小应用放在自己的手机上跑起来 。好加油。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值