通过对红绿蓝三个Slider控件的赋值来综合起来三种颜色调试出来大面板的颜色。
xaml
-
-
<Grid x:Name="LayoutRoot" Background="Transparent">
-
<Grid.RowDefinitions>
-
<RowDefinition Height="Auto"/>
-
<RowDefinition Height="*"/>
-
</Grid.RowDefinitions>
-
-
-
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
-
<TextBlock x:Name="ApplicationTitle" Text="COLOR SCROLL" Style="{StaticResource PhoneTextNormalStyle}"/>
-
</StackPanel>
-
-
-
<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>
-
-
-
<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}" />
-
-
-
<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}" />
-
-
-
<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);
- }
- }
- }
本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1079155