2019-11-29-WPF-非客户区的触摸和鼠标点击响应
原文:2019-11-29-WPF-非客户区的触摸和鼠标点击响应
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
WPF 非客户区的触摸和鼠标点击响应
|
lindexi
|
2019-11-29 08:44:11 +0800
|
2019-07-02 17:15:20 +0800
|
WPF
|
默认在 WPF 里面是不响应非客户区的鼠标事件,但响应触摸事件
在没有喝下午茶的时候 lsj 告诉我,在项目里面在一个定制的窗口里面的非客户区用鼠标点击不了一个按钮,但是用触摸可以点击按钮。本金鱼一开始认为这是之前修复的问题,但是作为金鱼已经不记得是怎么修了,为了让本金鱼下次遇到触摸或鼠标问题的时候可以解决,于是写了这个博客
本文将会告诉大家在 WPF 里面关于非客户区的触摸和鼠标点击响应
在本文开始之前,需要大家知道非客户区 Non-client Area 的概念,其实就是窗口标题栏大概的意思,详细请看 一起学WPF系列(3):窗体 - Robin Zhang - 博客园 和 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) - walterlv
敲黑板,下面的知识点要考
默认的 WPF 程序支持在非客户区响应 Touch 触摸,但不响应鼠标点击和 Pointer 触摸
如果需要在非客户区也就是窗口标题栏支持鼠标点击,那么请在按钮添加附加属性 WindowChrome.IsHitTestVisibleInChrome 为 true 支持鼠标点击
<Button WindowChrome.IsHitTestVisibleInChrome="True"/>
这里的 WindowChrome.IsHitTestVisibleInChrome 支持继承,也就是可以在窗口设置,这样所有在窗口里面的按钮都支持在标题栏点击
如何开启 Pointer 消息请看 win10 支持默认把触摸提升鼠标事件 打开 Pointer 消息
我和 lsj 使用 spy++ 知道在 WPF 的标题栏点击的时候是可以收到 Windows 鼠标消息,也就是这里是 WPF 处理的
我和 lsj 说也许是之前的 WPF 框架的大佬写的时候还不知道有触摸,于是处理了鼠标事件。之后添加了触摸忘了需要去掉,于是触摸就可以使用。现在 lsj 正在看 WPF 的源代码,想要找到是如何让标题栏支持触摸但是不支持鼠标点击
WindowChrome Class (System.Windows.Shell)
WindowChrome.IsHitTestVisibleInChrome Attached Property (Microsoft.Windows.Shell)
2019-11-29-WPF-非客户区的触摸和鼠标点击响应的更多相关文章
- 2019-8-8-WPF-非客户区的触摸和鼠标点击响应
title author date CreateTime categories WPF 非客户区的触摸和鼠标点击响应 lindexi 2019-08-08 16:48:31 +0800 2019-07 ...
- VC----SDK下对窗口非客户区的操作
窗口分成两大部分:客户区和非客户区.非客户区再次细分:标题栏,如图片中顶部深蓝色:左边框,如图片中红色部分:上边框,如图片中绿色部分:右边框,如图片中右侧天蓝色部分:底边框,如图片中下面棕色部分. 之 ...
- C# 绘制窗体客户非客户区要用WM_PAINT和WM_NCPAINT
窗体分为两部分:客户区(Client area)和非客户区(Non-Client area) WM_PAINT消息.OnPaint()方法.GetDC()API函数都是处理窗体客户区绘制的 而标题 ...
- 调用API函数,在窗口非客户区绘图(通过GetWindowDC获得整个窗口的DC,就可以随意作画了)
http://hi.baidu.com/3582077/item/77d3c1ff60f9fa5ec9f33754 调用API函数,在窗口非客户区绘图 GDI+的Graphics类里有个FromHdc ...
- 2019.11.29 Mysql的数据操作
为名为name的表增加数据(插入所有字段) insert into name values(1,‘张三’,‘男’,20); 为名为name的表增加数据(插入部分字段) insert into name ...
- 2019.11.29 SAP SMTP郵件服務器配置 發送端 QQ郵箱
今天群裏的小夥伴問了如何配置郵件的問題,隨自己在sap裏面配置了一個 1. RZ10配置參數 a) 参数配置前,先导入激活版本 执行完毕后返回 b) 输入参数文件DEFAU ...
- pycharm+anaconda在Mac上的配置方法 2019.11.29
内心os: 听人说,写blog是加分项,那他就不是浪费时间的事儿了呗 毕竟自己菜还是留下来东西来自己欣赏吧 Mac小电脑上进行python数据开发环境的配置 首先下载Anaconda,一个超好用的数据 ...
- Supervision meeting notes 2019/11/29
topic 分支: 1. subgraph/subsequence mining Wang Jin, routine behavior/ motif. Philippe Fournier Viger ...
- EOJ Monthly 2019.11 E. 数学题(莫比乌斯反演+杜教筛+拉格朗日插值)
传送门 题意: 统计\(k\)元组个数\((a_1,a_2,\cdots,a_n),1\leq a_i\leq n\)使得\(gcd(a_1,a_2,\cdots,a_k,n)=1\). 定义\(f( ...
随机推荐
- ConstraintLayout 用法
当前描述是基于constraint-layout:1.1.2. 一.前言 在以前,android是使用布局如LinearLayout .RelativeLayout等来构建页面,但这些布局使用起来很麻 ...
- Lnmp搭建zabbix运维监控系统
使用目的? 在公司项目中需要做一个日志监控,最开始选择的是efk,但是efk的资料相对较少并且之前对这几个产品都没接触过,使用起来难度.于是选择了zabbix作为项目的运维监控系统. zabbix能做 ...
- 3-6 merge操作
In [1]: import pandas as pd In [6]: left =pd.DataFrame({ 'A':['A0','A1','A2','A3'], 'B':['B0','B1',' ...
- 其他综合-Cobbler无人值守安装系统 CentOS 7
Cobbler 无人值守安装系统 CentOS 7 1.实验描述 1.1 概述 作为运维,在公司经常遇到一些机械性重复工作要做,例如:为新机器装系统,一台两台机器装系统,可以用光盘.U盘等介质安装,1 ...
- requests---session简介
http协议是无状态的,也就是每个请求都是独立的.那么登录后的一系列动作,都需要用cookie来验证身份是否是登录状态,为了高效的管理会话,保持会话,于是就有了session session简介 se ...
- DNS解析过程--笔试答题版
在运维笔试的时候,回答DNS解析的过程,不能写一大堆,一是不美观,二是浪费时间,应该怎么写呢?我觉得这样写比较好. 1.客户端:chche----hosts 2.DNS服务器:cache---递归-- ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第十周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第九周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- UiPath:Log Message: Column 'user_role' does not belong to table .非说这个列不存在,记录一下看看怎么解决
如图 确实是不存在...因为Excel的取值范围没有囊括user_role列...
- 使用angularJS接收json数据并进行数据的显示
1.引入JS <script type="text/javascript" src="../plugins/angularjs/angular.min.js&quo ...
- day24_7.30 反射与元类
一.反射 在python中,反射通常是指一个对象应该具备,可以检测修复,增加自身属性的能力. 而反射可以通过字符串对其进行操作. 其中涉及了4个函数,是四个普通 的函数: hasattr(oop,st ...