Win10系列:C#应用控件基础5
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所示。
图4-9 ListBox控件的使用 图4-10 选择水果后显示所选内容
Win10系列:C#应用控件基础5的更多相关文章
- Win10系列:JavaScript 控件的使用
向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...
- WPF从我炫系列4---装饰控件的用法
这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...
- WPF 模仿 UltraEdit 文件查看器系列一 用户控件
WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...
- C#控件系列--文本类控件
C#控件系列--文本类控件 文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能 Label用来 ...
- 重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree
原文:重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree [源码下载] 重新想象 ...
- 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试
原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...
- WPF编游戏系列 之四 用户控件
原文:WPF编游戏系列 之四 用户控件 在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...
- Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem
Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...
- Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid
Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...
- Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit
Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox.TComboEdit TListBox 有两个兄弟 TComboListBox.TComboEditL ...
随机推荐
- String和常量池
1.Java 会确保一个字符串常量只有一个拷贝 2.用new String() 创建的字符串不是常量,不能在编译期就确定,所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间 ...
- 项目上有红色感叹号, 一般就是依赖包有问题, remove依赖,重新加载,maven的也行可认删除,自己也会得新加载
项目上的红色叹号, 要下面提示: "Problems" 里的errors , 看是什么错误, 一般是由于网络等原因, 依赖没有下载完整, 只有文件名字对了, 内容不全, ...
- 使用VSCode如何从github拉取项目
转载自:https://blog.csdn.net/sunqy1995/article/details/81517159 1.开vscode使用CTRL+`或者点击查看到集成终端打开控制终端 2. 在 ...
- CC4 表达方式----输赢
“我要赢,不管付出什么,我一定要赢!”当我赢得时候,“我赢了!(欢呼)”.当我输的时候“不,我不要输.不开心.(垂头丧气)”.这样的场景你是否熟悉呢?我的一生都在经历输赢.以前我会为了赢一场游戏,花费 ...
- Rest数据服务查询类-根据sql查询
Rest数据服务查询类 需要iserver data服务支持,但请求的时候,不依赖SuperMap js lib包. 构造函数:QueryById=function(p_params): p_para ...
- Codeforces 374C - Inna and Dima
374C - Inna and Dima 思路:dfs+记忆化搜索 代码: #include<bits/stdc++.h> using namespace std; #define ll ...
- 完全二叉树的节点个数 Count Complete Tree Nodes
2018-09-25 16:36:25 问题描述: 问题求解: 单纯遍历了一遍,emmm,果然TLE. 解题思路就是比较左边树高度和右边树高度,如果相等,那么就是一个满二叉树,返回1 << ...
- mysqlsh : mysql shell tutorial
MySQL Shell 是一个高级的命令行客户端以及代码编辑器for Mysql. 除了SQL,MySQL Shell也提供脚本能力 for JS and Python. When MySQL she ...
- 11月29日 The Rails philosophy 完成rails on guide 的第一章getting started with rails
the rails philosophy includes two major guiding principles: Don't repeat yourself: DRY is a principl ...
- Django 的 orm 查询
一.模型关系表 1. 一对一 Author-AuthorDetail 关联字段可以在任意表下,但必须唯一约束.(unique约束) ad_id(unique约束) ad = models.oneToO ...