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

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

2013年01月04日 ⁄ 综合 ⁄ 共 1892字 ⁄ 字号 评论关闭

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大章分别是 存储,网络通信,封装。今天开始争取天天更新,当教材更新完了,各位同学应该可以做些自己的小应用放在自己的手机上跑起来 。好加油。

抱歉!评论已关闭.