Popup控件

在应用程序中使用Popup控件时,通常会先将其设置为隐藏状态,当用户触发应用中已定义的事件时,Popup控件将以弹出窗口的方式显示相关信息来提示用户操作。

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

<Popup .../>

-或-

<Popup ...>

<!--添加子元素-->

</Popup>

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

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

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

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

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

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

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

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

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

  5. C#控件系列--文本类控件

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

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

随机推荐

  1. Cocos Creator - 入门教程项目 - 博客频道 - CSDN.NET

    3457 教程司令部 [20160418] | Cocos Creator - CocoaChina CocoaChina_让移动开发更简单cocoachina.com 2033 Cocos Crea ...

  2. laravel容器container 阅读记录

    今天抽时间又仔细看了一下laravel的container,记录一下. 所谓容器,听名字就知道,是一个仓库,装东西用的,所以,container所有的功能,都围绕一个主题:管理装. 类名称:Illum ...

  3. python locust 性能测试:locust 关联---提取返回数据并使用

    from locust import HttpLocust, TaskSet, taskimport jsonfrom common import readConfig class UserBehav ...

  4. 虚拟机linux下安装tomcat外部可访问

    1.解压tomcat压缩包 tar -zxvf apache-tomcat 2.启动tomcat 进入bin目录下 ./catalina.sh run  (startup.sh不会显示日志信息) 3. ...

  5. iperf使用指南

    注意:iperf板上版本和PC上版本要一致,至少都要是2或者3,不能一个是2,一个是3. You also get a "connection refused" error whe ...

  6. MySQL中SQL语句2

    上一片介绍了一些基本的SQL的增删改查,这一片会介绍一些进阶的SQL语句使用. MySQL中的视图 视图是什么?当我们总是查询几张表的某个字段时,可以创建一张虚拟表,把这几个字段写入这个虚拟的表,这样 ...

  7. jQuery循环

    1.循环数组.对象: .$each(数组/对象,结果函数),即.$(arr,function(x,y) {...} ) 如果是数组,则函数中的x表示索引,y表示索引对应的值,只传递一个参数的话则表示索 ...

  8. [C++ Primer Plus] 零散知识点(一)、输入函数(cin,cin.get,cin.getline等)+string头文件辨析

    本文几乎照搬http://www.cnblogs.com/luolizhi/p/5746775.html博客,只修改了一点点.不知道怎么转发过来,尴尬... 学C++的时候,这几个输入函数弄的有点迷糊 ...

  9. 在数据库级别还是在service层进行级联删除

    在数据库配置级联删除的话,父表删除子表也删除.但是应该将维护代码放在一处,不要在service上删除父表,而在数据库层面级联删除子表,应该都在service层上进行删除.

  10. Excel 表格查找重复数据,去重复统计

    找出表格是否有重复数据: =IF(AND(G20=G19,D20=D19),"是","否") 筛选移除[重复的数据]然后开始统计 =SUBTOTAL(9,E2: ...