wpf之Popup弹出自定义输入"键盘"
2016-04-13 13:17
330 查看
在很多工厂的信息化MES系统中,车间的采集数据的机器是触摸屏电脑(工厂环境所限,用外接鼠标键盘反而不方便)。
由于没有外接键盘,所以用户无法像坐在办公室一样,用鼠标键盘进行录入信息。
这时我们可以用wpf的Popup控件,当点击一个"文本框"时,弹出一个自定义的键盘(UserControl),实现如下图效果:
View Code
验证输入后,绑定TextBlock的Text属性上值是否真的变化了:
总结:
1.Popup控件永远不会自动显示,为了显示Popup控件必须设置IsOpen属性。
2.默认情况下,Popup.StaysOen属性被设置为True,并且Popup控件会一直显示,直到显式地将IsOpen属性设置为False;
如果将Popup.StaysOpen属性设置为False,当用户在其他地方单击鼠标时,Popup效果关闭。
如果Popup控件的IsOpen属性设置为True时,通过Popup控件的PopupAnimation属性(同时必须要设置属性 AllowsTransparency="True")
可以设置Popup控件的显示方式:
由于没有外接键盘,所以用户无法像坐在办公室一样,用鼠标键盘进行录入信息。
这时我们可以用wpf的Popup控件,当点击一个"文本框"时,弹出一个自定义的键盘(UserControl),实现如下图效果:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.ComponentModel; namespace PopupDemo { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window,INotifyPropertyChanged { private int terminalNo; public int TerminalNo { get { return terminalNo; } set { if(value!=terminalNo) { terminalNo = value; OnPropertyChanged("TerminalNo"); } } } public MainWindow() { InitializeComponent(); } public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged(string propertyName) { if (this.PropertyChanged != null) { this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } private void btnShow_Click(object sender, RoutedEventArgs e) { MessageBox.Show(string.Format("终端编号的值为{0}", TerminalNo)); } } }
View Code
验证输入后,绑定TextBlock的Text属性上值是否真的变化了:
总结:
1.Popup控件永远不会自动显示,为了显示Popup控件必须设置IsOpen属性。
2.默认情况下,Popup.StaysOen属性被设置为True,并且Popup控件会一直显示,直到显式地将IsOpen属性设置为False;
如果将Popup.StaysOpen属性设置为False,当用户在其他地方单击鼠标时,Popup效果关闭。
如果Popup控件的IsOpen属性设置为True时,通过Popup控件的PopupAnimation属性(同时必须要设置属性 AllowsTransparency="True")
可以设置Popup控件的显示方式:
相关文章推荐
- RedHat6.5-Linux安装telnet服务
- spark架构及其工作机制
- 如何去除Linux文件的^M字符
- Linux终端telnet连接xxx邮箱server通过命令行实现mail发送
- JavaScript判断移动端及pc端访问不同的网站
- top
- hadoop2.6.0入门及其集群搭建
- hadoop1.2.1入门及集群搭建
- 配置tomcat
- 高流量站点NGINX与PHP-fpm配置优化
- docker 一些指令
- 09.VMWare虚拟机copy后网卡不是eth0解决办法
- Scrapy实战之抓取ajax网站
- linux 挂载ntfs格式分区
- 安装 CentOS 7 后必做的七件事
- Apache2 Install on Ubuntu 14.04
- ECSHOP v2.7.3注入漏洞分析和修复
- JZOJ2413. 【NOI2005】维护数列
- nchan-nginx
- centos查看设置端口开放状态