在windows phone中,还有很多控件,在这里我们主要看一下复选框CheckBox控件、进度条ProgressBar控件和Slider控件,至于经常用的ListBox控件在了解了资源及数据绑定这些定义之后再来关注。
CheckBox
CheckBox控件,它和RadioButton控件一样,也是继承自ToggleButton,除了Checked和UnChecked两个状态之
外,还有一个不确定状态:Indeterminate,那这三种状态是不是和Windows经典的扫雷游戏有些相似:空白、选中、标记,貌似我们可以来模
拟这个游戏哦。
CheckBox的主要事件还是Click(点击
时发生)、Checked(选中时发生)、UnChecked(未选中时发生)、Tap(tap手势时发生)、Indeterminate(状态切换到不
确定状态时发生)。另外就是它跟Button控件一样也是通过Content属性来设置显示信息的。
ProgressBar
ProgressBar控件,在应用程序中使用进度条控件可以有两种方式:一种是确切知道进度条剩余时间的情况下,可以使用精确时间比例的进度条,另一种是无法知道剩余时间的情况下,进度条仅表示“正在运行”状态,进度条应该是不断重复的。
ProgressBar控件的重要属性是IsIndeterminate,该属性获取或设置一个值,该值指示进度条是使用重复模式报告一般进度,还是基于 Value 属性报告进度。
Slider
Slider控件,这个控件用来显示比例关系,可以设置为垂直方向和水平方向。而鼠标(或手)在控件上点击的时候可以使控件的值增大或缩小。
常用属性:
IsDirectionReversed 获取或设置增加值的方向。
Orientation 获取或设置 Slider 的方向。
Value 获取或设置范围控件的当前数量。
简单地认识一下这些控件的使用。通过监听Slider的ValueChanged事件达到取值的目的。如
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<CheckBox Content="选择试试看" Height="72"
HorizontalAlignment="Left" Margin="30,62,0,0"
Name="myCheckBox" VerticalAlignment="Top"
IsThreeState="True"
Checked="myCheckBox_Checked"
Unchecked="myCheckBox_Unchecked"
Indeterminate="myCheckBox_Indeterminate"/>
<Slider Height="84" HorizontalAlignment="Left" Margin="12,209,0,0"
Name="mySlider" Orientation="Horizontal" VerticalAlignment="Top"
Width="438" Maximum="500" Minimum="0" Value="0" ValueChanged="mySlider_ValueChanged" />
<ProgressBar Height="5" HorizontalAlignment="Left" Margin="52,333,0,0"
Name="myProgressBar" VerticalAlignment="Top"
Width="350" IsIndeterminate="True" Maximum="500" Minimum="0" />
<TextBlock Height="156" HorizontalAlignment="Left" Margin="30,373,0,0"
Name="myTextBlock" Text="" TextWrapping="Wrap"
VerticalAlignment="Top" Width="386" />
Grid>
后台:
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.Shapes;
using Microsoft.Phone.Controls;
namespace Controls
{
public partial class Others : PhoneApplicationPage
{
private string state = "";//状态
private double myValue = 0;//值
public Others()
{
InitializeComponent();
}
private void myCheckBox_Checked(object sender, RoutedEventArgs e)
{
state = "Checked";
this.myProgressBar.IsIndeterminate = false;
myTextBlock.Text = "CheckBox的状态是:" + state + ",\nSlider的值是:" + myValue.ToString() + ".";
}
private void myCheckBox_Unchecked(object sender, RoutedEventArgs e)
{
state = "Unchecked";
this.myProgressBar.IsIndeterminate = true ;
myTextBlock.Text = "CheckBox的状态是:" + state + ",\nSlider的值是:" + myValue.ToString() + ".";
}
private void myCheckBox_Indeterminate(object sender, RoutedEventArgs e)
{
state = "Indeterminate";
this.myProgressBar.IsIndeterminate = true;
myTextBlock.Text = "CheckBox的状态是:" + state + ",\nSlider的值是:" + myValue.ToString() + ".";
}
private void mySlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (mySlider != null)
{
myValue = mySlider.Value;
this.myProgressBar.Value = myValue;
myTextBlock.Text = "CheckBox的状态是:" + state + ",\nSlider的值是:" + myValue.ToString() + ".";
}
}
}
}
效果: