ListBox控件

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

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

<ListBox .../>

-或-

<ListBox ...>

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

</ListBox>

下面介绍一下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的更多相关文章

  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#控件系列--文本类控件

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

  5. 重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree

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

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

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

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

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

  8. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

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

  9. Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid

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

  10. Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit

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

随机推荐

  1. String和常量池

    1.Java 会确保一个字符串常量只有一个拷贝 2.用new String() 创建的字符串不是常量,不能在编译期就确定,所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间 ...

  2. 项目上有红色感叹号, 一般就是依赖包有问题, remove依赖,重新加载,maven的也行可认删除,自己也会得新加载

    项目上的红色叹号, 要下面提示: "Problems"  里的errors  , 看是什么错误,  一般是由于网络等原因,  依赖没有下载完整,  只有文件名字对了,  内容不全, ...

  3. 使用VSCode如何从github拉取项目

    转载自:https://blog.csdn.net/sunqy1995/article/details/81517159 1.开vscode使用CTRL+`或者点击查看到集成终端打开控制终端 2. 在 ...

  4. CC4 表达方式----输赢

    “我要赢,不管付出什么,我一定要赢!”当我赢得时候,“我赢了!(欢呼)”.当我输的时候“不,我不要输.不开心.(垂头丧气)”.这样的场景你是否熟悉呢?我的一生都在经历输赢.以前我会为了赢一场游戏,花费 ...

  5. Rest数据服务查询类-根据sql查询

    Rest数据服务查询类 需要iserver data服务支持,但请求的时候,不依赖SuperMap js lib包. 构造函数:QueryById=function(p_params): p_para ...

  6. Codeforces 374C - Inna and Dima

    374C - Inna and Dima 思路:dfs+记忆化搜索 代码: #include<bits/stdc++.h> using namespace std; #define ll ...

  7. 完全二叉树的节点个数 Count Complete Tree Nodes

    2018-09-25 16:36:25 问题描述: 问题求解: 单纯遍历了一遍,emmm,果然TLE. 解题思路就是比较左边树高度和右边树高度,如果相等,那么就是一个满二叉树,返回1 << ...

  8. mysqlsh : mysql shell tutorial

    MySQL Shell 是一个高级的命令行客户端以及代码编辑器for Mysql. 除了SQL,MySQL Shell也提供脚本能力 for JS and Python. When MySQL she ...

  9. 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 ...

  10. Django 的 orm 查询

    一.模型关系表 1. 一对一 Author-AuthorDetail 关联字段可以在任意表下,但必须唯一约束.(unique约束) ad_id(unique约束) ad = models.oneToO ...