====== 014 スライダー ======
{{:wiki:windowsphone:7.1:tips:w_phone_014_001.png?200|}}
===== 概要 =====
3つのスライダーを調整して、短形の色を変更します。
==== MainPage.xaml ====
==== MainPage.xaml.cs ====
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.Diagnostics;
namespace BaseApp
{
// エントリーポイント
public partial class MainPage : PhoneApplicationPage
{
private Rectangle rect0 = null;
private Slider sliderR = null;
private Slider sliderG = null;
private Slider sliderB = null;
SolidColorBrush solidColor = null;
// コンストラクタ
public MainPage()
{
// コンポーネントの初期化。
InitializeComponent();
// 初期化完了後に呼ばれるメソッドの登録。
Loaded += OnLoaded;
}
// 初期化完了後に呼ばれるメソッド。
void OnLoaded(object sender, RoutedEventArgs args)
{
// スライダーを表示する。
{
sliderR = new Slider();
sliderR.Name = "sliderR";
sliderR.Tag = "red";
sliderR.Width = 255;
sliderR.Height = 80;
sliderR.Maximum = 255;
sliderR.Minimum = 0;
sliderR.Value = 255;
sliderR.ValueChanged += new RoutedPropertyChangedEventHandler(OnValueChanged);
Canvas.SetLeft(sliderR, 20);
Canvas.SetTop(sliderR, 40);
LayoutRoot.Children.Add(sliderR);
sliderG = new Slider();
sliderG.Name = "sliderG";
sliderG.Tag = "green";
sliderG.Width = 255;
sliderG.Height = 80;
sliderG.Maximum = 255;
sliderG.Minimum = 0;
sliderG.Value = 255;
sliderG.ValueChanged += new RoutedPropertyChangedEventHandler(OnValueChanged);
Canvas.SetLeft(sliderG, 20);
Canvas.SetTop(sliderG, 120);
LayoutRoot.Children.Add(sliderG);
sliderB = new Slider();
sliderB.Name = "sliderB";
sliderB.Tag = "blue";
sliderB.Width = 255;
sliderB.Height = 80;
sliderB.Maximum = 255;
sliderB.Minimum = 0;
sliderB.Value = 255;
sliderB.ValueChanged += new RoutedPropertyChangedEventHandler(OnValueChanged);
Canvas.SetLeft(sliderB, 20);
Canvas.SetTop(sliderB, 200);
LayoutRoot.Children.Add(sliderB);
}
// 短形を描く。
{
rect0 = new Rectangle();
solidColor = new SolidColorBrush(Color.FromArgb(255, (byte)sliderR.Value, (byte)sliderG.Value, (byte)sliderB.Value));
rect0.Fill = solidColor;
rect0.Width = 240;
rect0.Height = 240;
Canvas.SetLeft(rect0, 120);
Canvas.SetTop(rect0, 300);
LayoutRoot.Children.Add(rect0);
}
}
// スライダーの値が変更された時に呼ばれるメソッド。
private void OnValueChanged( object sender, RoutedPropertyChangedEventArgs e )
{
Slider sl = sender as Slider;
String tag = (String)(sl).Tag;
double value = (double)e.NewValue;
Color color0 = solidColor.Color;
switch (tag)
{
case "red":
solidColor.Color = Color.FromArgb(color0.A, (byte)value, color0.G, color0.B);
break;
case "green":
solidColor.Color = Color.FromArgb(color0.A, color0.R, (byte)value, color0.B);
break;
case "blue":
solidColor.Color = Color.FromArgb(color0.A, color0.R, color0.G, (byte)value);
break;
}
rect0.Fill = solidColor;
}
}
}