Win10系列:C#应用控件基础5

时间:2022-11-10 21:39:54

ListBox控件

上一小节介绍的ComboBox控件在外观上仅显示当前选中的选项,通过单击此控件文本框才能看到其他选项,而ListBox控件能够以列表形式始终显示选项。在ListBox控件中可以添加多个ListBoxItem列表项来组成一个列表,允许用户在列表中选择一项或多项。

在XAML文件中,ListBox控件的用法如下所示:

<ListBox .../>

-或-

<ListBox ...>

<ListBoxItem><!--添加内容--></ListBoxItem>

</ListBox>

下面介绍一下ListBox控件的常用属性:

  • Name属性,获取或设置ListBox控件的名称。
  • SelectedValue属性,获取或设置在ListBox控件的列表中选择的选项内容。
  • SelectedValuePath属性,获取或设置路径用于定义SelectedValue属性值的来源。
  • SelectedItem属性,获取或设置列表中选中的项。
  • SelectedItems属性,获取ListBox控件当前选中项的列表。

介绍完常用属性后,接着来看一下ListBox控件的常用事件:

  • SelectionChanged事件,在ListBox控件列表中当前选择项发生改变时触发。
  • DoubleTapped事件,双击ListBox控件列表中的选项时触发。

ListBox控件有一个常用方法SelectAll,在程序中调用SelectAll方法将选中ListBox控件列表中的所有选项。

下面使用ListBox控件设计一个在水果种类列表中选择水果的应用示例。

新建一个名为"ListBoxDemo"的Windows应用商店的空白应用程序项目,在MainPage.xaml文件的Grid元素中添加如下代码。

<ListBox HorizontalAlignment="Left" Name="FruitListBox" Height="133" Margin="564,125,0,0" SelectionChanged="FruitListBox_SelectionChanged" SelectionMode="Multiple" SelectedValuePath="Content" VerticalAlignment="Top" Width="100">

<ListBoxItem Content="苹果"/>

<ListBoxItem Content="香蕉"/>

<ListBoxItem Content="葡萄"/>

</ListBox>

<TextBlock Name="SelectedFruit" HorizontalAlignment="Left" Margin="725,138,0,0" TextWrapping="Wrap" FontSize="20" VerticalAlignment="Top" Height="89" Width="200"/>

<TextBlock HorizontalAlignment="Left" Margin="564,79,0,0" TextWrapping="Wrap" Text="水果种类:" FontSize="25" VerticalAlignment="Top" Height="28" Width="137"/>

在上面的代码中,添加了一个ListBox控件和两个TextBlock文本块,在ListBox控件中设置其SelectionMode属性值为"Multiple"以便可以在列表中选取多个选项,然后添加三个ListBoxItem列表项,内容分别为苹果、香蕉和葡萄。两个TextBlock文本块用于显示"水果种类:"和选择的水果信息。

打开项目中的MainPage.xaml.cs文件,为ListBox控件的SelectionChanged事件添加处理方法FruitListBox_SelectionChanged,在列表中选择列表项时会触发SelectionChanged事件,将选择的水果信息显示在SelectedFruit文本块中,代码如下所示:

private void FruitListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

//定义一个string类型的变量showFruit用来保存所选择的水果

string showFruits = String.Empty;

//定义一个selectedFruit变量存储在列表中选择的水果信息

var selectedFruits = FruitListBox.SelectedItems;

//遍历selectedFruits变量中存储的水果信息并赋给showFruits变量

foreach (var fruitItems in selectedFruits)

{

ListBoxItem fruitItem = fruitItems as ListBoxItem;

showFruits += fruitItem.Content;

}

SelectedFruit.Text = "你选择了:" + showFruits;

}

在上面的代码中,首先定义一个string类型的变量showFruit用来保存所选择的水果内容,然后定义一个selectedFruits变量用于存储在列表中选择的水果信息集合,接着使用foreach遍历selectedFruits变量,将选择的列表项内容赋值给showFruits变量,最后在SelectedFruit文本块中显示选择信息。

运行程序,在界面上可以看到"水果种类:"文本信息和一个包含"苹果"、"香蕉"和"葡萄"选项的列表,效果如图4-9所示,选中列表中的"香蕉"和"葡萄"选项后,会在界面显示选择结果"你选择了:香蕉葡萄",效果如图4-10所示。

Win10系列:C#应用控件基础5
Win10系列:C#应用控件基础5

图4-9 ListBox控件的使用 图4-10 选择水果后显示所选内容

Win10系列:C#应用控件基础5的更多相关文章

  1. Win10系列:JavaScript 控件的使用

    向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...

  2. WPF从我炫系列4---装饰控件的用法

    这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox*缩放控件 1. ScrollView ...

  3. WPF 模仿 UltraEdit 文件查看器系列一 用户控件

    WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...

  4. C&num;控件系列--文本类控件

    C#控件系列--文本类控件         文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能         Label用来 ...

  5. 重新想象 Windows 8 Store Apps &lpar;17&rpar; - 控件基础&colon; Measure&comma; Arrange&comma; GeneralTransform&comma; VisualTree

    原文:重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree [源码下载] 重新想象 ...

  6. 重新想象 Windows 8 Store Apps &lpar;16&rpar; - 控件基础&colon; 依赖属性&comma; 附加属性&comma; 控件的继承关系&comma; 路由事件和命中测试

    原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...

  7. WPF编游戏系列 之四 用户控件

    原文:WPF编游戏系列 之四 用户控件        在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...

  8. Delphi XE2 之 FireMonkey 入门&lpar;44&rpar; - 控件基础&colon; TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -&gt ...

  9. Delphi XE2 之 FireMonkey 入门&lpar;43&rpar; - 控件基础&colon; TStringGrid、TGrid

    Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...

  10. Delphi XE2 之 FireMonkey 入门&lpar;42&rpar; - 控件基础&colon; TComboBox、TComboEdit

    Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox.TComboEdit TListBox 有两个兄弟 TComboListBox.TComboEditL ...

随机推荐

  1. Xcode7 使用NSURLSession发送HTTP请求的问题

    报错信息: Application Transport Security has blocked a cleartext HTTP (http://) resource load since it i ...

  2. JSONArray传值的使用小结

    今天使用了SpringMVC+mybatis传值.从controller中传到service中.可是由于版本问题参数中不能有大写和下划线,在service中只能用String 来接受json字符串.接 ...

  3. Glibc 与 libc 的区别和联系

    转http://blog.163.com/dragon_sjl@126/blog/static/100473339201107101517380/ 1.gcc(gnu collect compiler ...

  4. macTypeError&colon; slice indices must be integers or None or have an index method

    一般是由于Numpy的版本太高了(1.12对此进行了调整),有的时候传入numpy array里面的索引可能是浮点数,这个时候最好检查一下索引强制转换为int类型 或者安装低版本的numpy sudo ...

  5. 肺结节CT影像特征提取(一)——肺结节CT图像特征概要

    本科毕设做的是医学CT图像特征提取方法研究,主要是肺部CT图像的特征提取.由于医学图像基本为灰度图像,因此我将特征主要分为三类:纹理特征,形态特征以及代数特征,每种特征都有对应的算法进行特征提取. 如 ...

  6. easyui 布局之window和panel一起使用时,拉动window宽高时panel不跟随一起变化

    项目开发中布局是每一个组件都由最外层的window和内部的至少一个panel组成,其他的细小组件再依次放到panel中. 问题:当拉动外部的window时我们希望内部的panel的宽高也跟着变化,但是 ...

  7. NetBeans使用Consolas中文乱码的解决

    1.进入jdk安装目录下/jre/lib文件夹,找到fontconfig.properties.src,拷贝为 fontconfig.properties ,修改此文件. 找到: sequence.m ...

  8. 创建第一次C语言程序

    在这里我以VS2015为例,做演示.为什么要去演示怎样创建项目尼,因为我写第一个程序时,不知道该怎样用VS创建我的第一个应用程序. 第一步:打开VS环境如下 第二步:在开始出点击“新建项目”或在右上角 ...

  9. 【LeetCode每天一题】Combination Sum II(组合和II)

    Given a collection of candidate numbers (candidates) and a target number (target), find all unique c ...

  10. tornado基础入门(一)——简单了解tornado

    参考:http://demo.pythoner.com/itt2zh/ch1.html tornado是一个轻量级的web框架,是一个用python写的web服务器,它有三个最大的特点(优势)速度.简 ...