您的位置:知识库 » 手机开发

WP开发之:Silverlight选择控件详解

来源: IT168  发布时间: 2011-09-21 21:03  阅读: 275 次  推荐: 0   原文链接   [收藏]  
摘要:之前的文章我们给大家讲述了Windows phone开发:Silverlight控件。选择控件用来显示两项及以上的内容,并允许用户进行选择。在Windows Phone 7中常见的此类控件有CheckBox、ListBox、RadioButton和Slider。下面分别介绍这几种控件的功能和常用方法。

  之前的文章我们给大家讲述了Windows phone开发:Silverlight控件。选择控件用来显示两项及以上的内容,并允许用户进行选择。在Windows Phone 7中常见的此类控件有CheckBox、ListBox、RadioButton和Slider。下面分别介绍这几种控件的功能和常用方法。

  1.CheckBox

  该控件继承自ToggleButton,是一种可以让用户进行3种状态选择的控件。这3种状态为:选中、未选中和不确定。通过设置IsChecked属性来设置和判断控件当前的状态,如Ture为选中,False为未选中,Null为不确定,如图6-13所示为一个不确定选择的属性值。

  

  ▲图6-13 设置IsChecked属性

  此外,CheckBox控件也是通过Content属性来设置其显示的文字内容的。

  【XAML代码】

<CheckBox .../>
-或者-
<CheckBox>
声明内容的对象元素
</CheckBox>
-或者-
<CheckBox ...>一个字符串</CheckBox>

  【示例】

  下面来展现一下如何设置CheckBox控件的3种不同状态,并且查看不同状态下控件的外观。

  1)首先建立一个新的Windows Phone Application项目文件,将CheckBox控件放入窗口中,一共放置3个。

  2)修改每个控件的Content属性,并且根据Content内容设置控件的IsChecked属性,最终的结果如图6-14所示。

  

  ▲图6-14 设置CheckBox控件的最终结果

  2.ListBox

  ListBox控件提供一个显示项集合,用来显示多个项供用户选择。该控件是temControl,因此,可以使用Items或ItemsSource属性来设置其内容。可以在设计阶段直接设置ListBox内容,也可以在代码中添加其内容。另外,可以使用SelectionMode属性来指定ListBox是否允许多重选择。

  【XAML代码】

<ListBox .../>

  【示例】

  下面通过一个示例来演示如何在代码中向ListBox添加项。在界面中,使用一个TextBox用于输入文本内容,使用一个Button来触发向ListBox添加项的操作,使用一个ListBox进行演示。

  1)建立一个新的Windows Phone Application项目文件,在程序主窗口中添加一个TextBox,一个Button和一个ListBox。

  2)设置TextBox的Text属性为在这里输入ListBox项内容,修改Button的Content属性为添加,将ListBox控件的大小调整到充满整个窗体的下部分,设置完毕后,程序主界面大致如图6-15所示。

  

  ▲图6-15 调整ListBox控件的程序主界面

  3)示例的目标是为了在单击Button按钮的时候将TextBox中的内容添加为ListBox的项。因此,需要处理Button按钮的Click事件,双击Button按钮触发对Click事件的响应,并填写如下代码:

  private void button1_Click(object sender, RoutedEventArgs e)

  {

  listBox1.Items.Add(textBox1.Text);

  }

  4)ListBox1是ListBox在本示例中一个实例的名字,这是由Visual Studio提供的默认名称,在此没有做修改。以上代码中调用了Item的Add方法来添加ListBox的项。

  运行程序,在TextBox中分别输入aaa、bbb等字符,然后单击Button按钮,可以看到如图6-16所示的运行结果。


▲图6-16 添加ListBox内容的运行结果

  事实上,有许多种方法可以在ListBox中显示数据,也可以通过在XAML代码中直接向列表添加项,或者将ItemsSource属性设置为一个集合来填充ListBox。还可以通过设置ItemTemplate来自定义每个ListBoxItem的显示方式。

  3.RadioButton

  该控件允许用户从一个列表中选择唯一的选项,这是通过设置RadioButton的组别来实现单选互斥的。可以通过将RadioButton放到其父控件内或者为多个RadioButton设置GroupName属性来对RadioButton进行分组。同一个组别中的RadioButton控件,只有一个能被用户选中。

  RadioButton只有两种状态:选中或未选中。通过RadioButton的IsChecked属性来设置或者判断控件是否被选中的状态。被选中的RadioButton,其IsChecked属性为true,如果需

  要清除选中的RadioButton,必须选中该组的另外一个RadioButton,而不能通过单选其本身来清除选中的状态。

  RadioButton与之前介绍过的CheckBox控件十分类似,但是前者是一种只能在同组中单选的互斥按钮,而后者是一个可以实现复选的选择控件。

  此外,RadioButton也是ContentControl,其内容属性为Content。

  【XAML代码】

<RadioButton .../>
-或者-
<RadioButton...>
声明内容的对象元素
</RadioButton>

  【示例】

  本示例演示了一个互斥的条件选择场景:选择性别的程序界面。可以通过设置或检查RadioButton的IsChecked属性来改变控件的选中状态,如图6-17所示。


▲图6-17 改变RadioButton控件的选中状态

  4.Slider

  该控件用来显示一条类似轨道或者进度条的状态条,用户可以在其上一定范围内选择一个值。事实上,该控件常常应用在一个对值的选择更加形象化的场合,如常见的音量大小选择或者色彩比例的选择。

  Slider控件可以设置其方向:水平或垂直方向,这是通过改变其属性Orientation的值来达到的。Slider控件的当前选择值保存在属性Value中,也可以通过设置其Maximum和Minimum来指定可选值的范围。

  Slider还具有IsDirectionReversed属性,用来设置其初始的值状态:空或满。

  【XAML代码】

<Slider />

  【示例】

  下面通过一个示例来演示如何获取Slider当前的值,这里需要注意一点,Slider控件有一个ValueChanged事件,这是Slider的一个主要事件,该事件在用户每次更改了Slider的选择值后触发。示例就需要来响应这样一个事件来更新显示用户当前选择的值。

  1)首先建立一个新的Windows Phone Application项目文件,向程序添加两个Slider控件,并且设置其中一个Slider控件的Orientation属性的值为Vertical,默认为Horizontal,再添加两个TextBlock,设置其中一个TextBlock的Text属性为当前值,另一个为0,按图6-18所示排列所有控件。


▲图6-18 Slider控件

  2)分别双击两个Slider控件以触发各自的ValueChanged事件,在这里使用Visual Studio默认的命名:Slider1和Slider2。ValueChanged事件的响应代码如下:

private void slider1_ValueChanged(object sender,

RoutedPropertyChangedEventArgs<double> e)
{
textBlock2.Text = slider1.Value.ToString();
}

private void slider2_ValueChanged(object sender,
RoutedPropertyChangedEventArgs<double> e)
{
textBlock2.Text = slider2.Value.ToString();
}

  3)以上代码中,将Slider的Value值转换成String类型,并赋给textBlock的Text属性以显示出来。

  程序运行后的结果如图6-19所示,单击Slider控件的不同位置会改变当前Slider属性Value的值,当然改变也会被TextBlock显示出来。


▲图6-19 Slider控件运行效果

手机开发热门文章

    手机开发最新文章

      最新新闻

        热门新闻