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. 公网k8s

    dm :32750/swagger/ 统一在   cd /opt/iot 删除容器,自动创建容器 dm 更新dm和acl包  dm源文件chart包   cd /var/lib/helmrepo/ h ...

  2. jmeter二次开发之java请求

    现在很多公司都用的是微服务,每个服务的请求协议有可能不相同,怎样用jmeter二次开发自己的java请求? 下面是具体的开发步骤: 1,把需要的jar包 添加到maven依赖中 jmeter中java ...

  3. 强迫症犯了,忍不住赞一下slf4j包Logger.java的优雅代码

    如下是slf4j-api包下的Logger接口类里其中几个方法的声明: package org.slf4j; public interface Logger { /** * Log a message ...

  4. 日志采集器windows客户端的配置释义

    <Extension json> Module xm_json </Extension> <Extension charconv> Module xm_charco ...

  5. SQL Server通过BCP进行大批量数据导入导出

    预置条件: 使用sa帐号登录SQL Server Management Studio,右键点击安全性-登录名-数据库用户名属性,设置服务器角色为sysadmin. 删除已存在的存储过程 String ...

  6. List 循环删除 指定元素的 方法

    使用Iterator进行循环,在删除指定元素.如果使用for 或 foreach 在删除指定下标是,list.size 会相应的缩短且下标前移,导致相邻满足条件的元素未删除 Iterator<S ...

  7. oracel数据库主键自增

    -- Create sequence create sequence FILE_ID_SEQ   主键名(自增列) minvalue 1         起始 maxvalue 99999     最 ...

  8. nginx-fastcgi 第九章

    CGI全称通用网关接口 Commmon Gateway Interface 用于HTTP服务上的程序服务通信交流的一种工具,CGI程序须运行在网络服务器上. 传统CGI接口方式性能较差,由于每次HTT ...

  9. tp剩余未验证内容-6

    杂项 系统中的电感线圈元件, 虽然不消耗电能, 但是会 占用系统的容量(相当于占用资源但是不做事), 会使系统 的发电量的使用效率降低, 线路损耗增大, 发出同样有功用电量所需的设备容量扩大 将感性元 ...

  10. CSS粘住固定底部的5种方法

    本文主要介绍一个Footer元素如何粘住底部,使其无论内容多或者少,Footer元素始终紧靠在浏览器的底部.我们知道,当内容足够多可以撑开底部到达浏览器的底部,如果内容不够多,不足以撑开元素到达浏览器 ...