Win10系列:C#应用控件基础17
Popup控件
在应用程序中使用Popup控件时,通常会先将其设置为隐藏状态,当用户触发应用中已定义的事件时,Popup控件将以弹出窗口的方式显示相关信息来提示用户操作。
在XAML文件中,Popup控件的用法如下所示:
<Popup .../>
-或-
<Popup ...>
<!--添加子元素-->
</Popup>
下面介绍一下Popup控件的几个常用属性:
- VerticalOffset属性,获取或设置弹出的Popup控件与页面顶端的竖直距离。
- HorizontalOffset属性,获取或设置弹出的Popup控件与页面左端的水平距离。
- IsOpen属性,获取或设置Popup控件是否弹出。当设置IsOpen属性值为True,Popup控件弹出,当设置IsOpen属性值为False,Popup控件隐藏。
介绍完常用属性后,接着来看一下Popup控件的常用事件:
- Closed事件,当Popup控件关闭时触发。
- Opened事件,当弹出Popup控件时触发。
接下来通过一个示例来说明Popup控件的使用方法。
新建一个Windows应用商店的空白应用程序项目,并命名为PopupDemo,在MainPage.xaml文件中添加如下代码。
<Grid RightTapped="ShowPopupRightTapped" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Popup VerticalOffset="500" HorizontalOffset="500" Name="StandardPopup">
<Border BorderBrush="{StaticResource ApplicationForegroundThemeBrush}" BorderThickness="2" Width="200" Height="200">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="Popup控件" FontSize="24.667" HorizontalAlignment="Center"/>
<Button Content="关闭" Click="ClosePopupClicked" HorizontalAlignment="Center"/>
</StackPanel>
</Border>
</Popup>
</Grid>
在上面的代码中,首先为Grid元素的右键单击事件RightTapped注册事件处理方法,接着在Grid元素中添加了一个Popup控件,设置Popup控件的VerticalOffset属性和HorizontalOffset属性的值为500。接着在Popup控件内添加一个Border边框,设置Border边框的Width属性值和Height属性值为200,边框宽度属性BorderThickness的值为2。在边框内使用StackPanel对添加的TextBlock文本块和Button按钮进行布局,TextBlock文本块用于显示"Popup控件"文本信息,将Button按钮的Content属性值设置为"关闭",并为其注册单击事件处理方法,当单击"关闭"按钮时将Popup控件隐藏。
双击打开MainPage.xaml.cs文件,为Grid元素的RightTapped事件添加事件处理方法ShowPopupRightTapped,实现当使用鼠标右键单击界面时弹出定义好的Popup控件,代码如下所示:
private void ShowPopupRightTapped(object sender, RightTappedRoutedEventArgs e)
{
if (!StandardPopup.IsOpen)
{
//为Popup控件的IsOpen属性赋值为true,使Popup控件弹出
StandardPopup.IsOpen = true;
}
}
在上面的代码中利用StandardPopup的IsOpen属性对Popup控件进行控制,若StandardPopup的IsOpen属性值为false,则将IsOpen属性值设置为true,使Popup控件弹出。
接下来为Popup控件上的"关闭"按钮添加单击事件处理方法ClosePopupClicked,实现单击此按钮时隐藏Popup控件,代码如下所示:
private void ClosePopupClicked(object sender, RoutedEventArgs e)
{
if (StandardPopup.IsOpen)
{
//为Popup控件的IsOpen属性赋值为false,使Popup控件隐藏
StandardPopup.IsOpen = false;
}
}
上面的代码同样利用StandardPopup的IsOpen属性对Popup控件进行控制,若StandardPopup的IsOpen属性值为true,则将IsOpen属性值设置为false,使Popup控件隐藏。
运行程序将显示一个空界面,右键单击界面会弹出Popup控件,在Popup控件内包含"Popup控件"文本信息和一个"关闭"按钮,如图4-28所示。单击"关闭"按钮将隐藏Popup控件。
图4-28 Popup控件的使用
Win10系列:C#应用控件基础17的更多相关文章
- Win10系列:JavaScript 控件的使用
向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...
- 重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree
原文:重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree [源码下载] 重新想象 ...
- 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 (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 ...
随机推荐
- 这10个Python项目超有趣!
前言: Python可谓是现在很多人正在学或者想学的一个脚本语言了,提到学习自然就少不了拿项目练手,可是一般的项目根本提不起兴趣嘛,这10个项目可是非常有趣的,不信你看看. [Python 图片转字符 ...
- Java文件写入与读取实例求最大子数组
出现bug的点:输入数组无限大: 输入的整数,量大: 解决方案:向文件中输入随机数组,大小范围与量都可以控制. 源代码: import java.io.BufferedReader; import j ...
- ionic 需要注意的知识点
- Kestrel:Net Core的跨平台服务器
概述 Kestrel是一个基于libuv的跨平台ASP.NET Core web服务器,libuv是一个跨平台的异步I/O库.ASP.NET Core项目默认使用Kestrel作为web服务器. 用户 ...
- Objective-C RunTime 学习笔记 之 基础结构体
1.OC 运行期常用对象结构体 基本的结构体定义 typedef objc_class Class; /* 类 */ typedef objc_object *id; /* 各种类型,只要第一个字段为 ...
- wm_concat函数oracle 11g返回clob
用wm_concat连接拼接字符串,测试环境是10g,一切正常 到了生产环境是11g,点开直接报错了 wm_concat函数在oracle 10g返回的是字符串,到了11g返回的是clob 解决办法: ...
- vue-i18n使用ES6语法以及空格换行问题
1.运行报错 报错使用了不恰当的exports Uncaught TypeError : Cannot assign to read only property 'exports ' of objec ...
- Docker Kubernetes 介绍 or 工作原理
Kubernetes 介绍 Kubernetes是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernetes也叫K8S. K8S是Google内部一个叫Borg的容 ...
- 基本数据类型大总结(int,str,list,dict,tuple)
python基本数据类型 int==>整数,主要用来进行数学运算 str==>字符串,可以保存单一数值 bool==>判断真假,true,false list==>存储大量数据 ...
- 深度解析vuex
1.什么是vuex? vuex 是一个专为 Vue.js 应用程序开发的状态管理模式(通俗一点的说Vuex就是存储数据的工具,类似于cookie.sessionStorage.localStorage ...