zoukankan      html  css  js  c++  java
  • Windows Phone 7 Slider控件的运用调色板

    通过对红绿蓝三个Slider控件的赋值来综合起来三种颜色调试出来大面板的颜色。

    xaml

    <!--LayoutRoot contains the root grid where all other page content is placed-->
    <Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <!--TitlePanel contains the name of the application and page title-->
    <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
    <TextBlock x:Name="ApplicationTitle" Text="COLOR SCROLL" Style="{StaticResource PhoneTextNormalStyle}"/>
    </StackPanel>

    <!--ContentPanel - place additional content here-->
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <Rectangle Name="rect"
    Grid.Row
    ="0"
    Grid.Column
    ="0" />

    <Grid Name="controlGrid"
    Grid.Row
    ="1"
    Grid.Column
    ="0">
    <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="*" />
    <ColumnDefinition Width="*" />
    <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <!-- Red column -->
    <TextBlock Grid.Column="0"
    Grid.Row
    ="0"
    Text
    ="Red"
    Foreground
    ="Red"
    Style
    ="{StaticResource textStyle}" />

    <Slider Name="redSlider"
    Grid.Column
    ="0"
    Grid.Row
    ="1"
    Foreground
    ="Red"
    Style
    ="{StaticResource sliderStyle}"
    ValueChanged
    ="OnSliderValueChanged" />

    <TextBlock Name="redText"
    Grid.Column
    ="0"
    Grid.Row
    ="2"
    Text
    ="0"
    Foreground
    ="Red"
    Style
    ="{StaticResource textStyle}" />

    <!-- Green column -->
    <TextBlock Grid.Column="1"
    Grid.Row
    ="0"
    Text
    ="Green"
    Foreground
    ="Green"
    Style
    ="{StaticResource textStyle}" />

    <Slider Name="greenSlider"
    Grid.Column
    ="1"
    Grid.Row
    ="1"
    Foreground
    ="Green"
    Style
    ="{StaticResource sliderStyle}"
    ValueChanged
    ="OnSliderValueChanged" />

    <TextBlock Name="greenText"
    Grid.Column
    ="1"
    Grid.Row
    ="2"
    Text
    ="0"
    Foreground
    ="Green"
    Style
    ="{StaticResource textStyle}" />

    <!-- Blue column -->
    <TextBlock Grid.Column="2"
    Grid.Row
    ="0"
    Text
    ="Blue"
    Foreground
    ="Blue"
    Style
    ="{StaticResource textStyle}" />

    <Slider Name="blueSlider"
    Grid.Column
    ="2"
    Grid.Row
    ="1"
    Foreground
    ="Blue"
    Style
    ="{StaticResource sliderStyle}"
    ValueChanged
    ="OnSliderValueChanged" />

    <TextBlock Name="blueText"
    Grid.Column
    ="2"
    Grid.Row
    ="2"
    Text
    ="0"
    Foreground
    ="Blue"
    Style
    ="{StaticResource textStyle}" />
    </Grid>
    </Grid>
    </Grid>

    cs

    using System;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Media;
    using Microsoft.Phone.Controls;

    namespace ColorScroll
    {
    public partial class MainPage : PhoneApplicationPage
    {
    public MainPage()
    {
    InitializeComponent();

    //三个slider控件的初始值
    redSlider.Value = 128;
    greenSlider.Value
    = 128;
    blueSlider.Value
    = 128;
    }

    //slider控件变化时触发的事件
    void OnSliderValueChanged(object sender, RoutedPropertyChangedEventArgs<double> args)
    {
    Color clr
    = Color.FromArgb(255, (byte)redSlider.Value,
    (
    byte)greenSlider.Value,
    (
    byte)blueSlider.Value);//获取调剂的颜色

    rect.Fill
    = new SolidColorBrush(clr);//用该颜色的笔刷填充大面板

    redText.Text
    = clr.R.ToString("X2");
    greenText.Text
    = clr.G.ToString("X2");
    blueText.Text
    = clr.B.ToString("X2");
    }

    //手机方向变化触发的事件,从新布局
    protected override void OnOrientationChanged(OrientationChangedEventArgs args)
    {
    ContentPanel.RowDefinitions.Clear();
    ContentPanel.ColumnDefinitions.Clear();

    // Landscape
    if ((args.Orientation & PageOrientation.Landscape) != 0)
    {
    ColumnDefinition coldef
    = new ColumnDefinition();
    coldef.Width
    = new GridLength(1, GridUnitType.Star);
    ContentPanel.ColumnDefinitions.Add(coldef);

    coldef
    = new ColumnDefinition();
    coldef.Width
    = new GridLength(1, GridUnitType.Star);
    ContentPanel.ColumnDefinitions.Add(coldef);

    Grid.SetRow(controlGrid,
    0);
    Grid.SetColumn(controlGrid,
    1);
    }
    // Portrait
    else
    {
    RowDefinition rowdef
    = new RowDefinition();
    rowdef.Height
    = new GridLength(1, GridUnitType.Star);
    ContentPanel.RowDefinitions.Add(rowdef);

    rowdef
    = new RowDefinition();
    rowdef.Height
    = new GridLength(1, GridUnitType.Star);
    ContentPanel.RowDefinitions.Add(rowdef);

    Grid.SetRow(controlGrid,
    1);
    Grid.SetColumn(controlGrid,
    0);
    }
    base.OnOrientationChanged(args);
    }
    }
    }
  • 相关阅读:
    21. Node.Js Buffer类(缓冲区)-(一)
    20.Node.js EventEmitter的方法和事件
    19.Node.js EventEmitter
    18.Node.js 事件循环
    17.Node.js 回调函数--异步编程
    16.REPL 命令
    15.Node.js REPL(交互式解释器)
    14.NPM 常用命令
    **PHP Notice: Undefined index:...问题的解决方法
    **CI中的order_by在get_where之前
  • 原文地址:https://www.cnblogs.com/linzheng/p/1958304.html
Copyright © 2011-2022 走看看