我们有时候又需求从当前视觉树中找一些东西,比如鼠标按下的时候,看看鼠标下的元素都有什么.又比如某块区域下有哪些元素?某个坐标点下有哪些元素? 这些需求在使用 命中测试的时候,可以非常方便和快速的去找到我们需要的内容. 简单命中测试 我们写一个最简单的命中测试的示例,来了解命中测试.我在一个画板上在不同的位置放了3个圆形.给他们放置了不同的位置和填充不同的颜色,我们通过命中测试判断如果鼠标在圆上抬起了,我们读取当前圆的填充颜色. <Window x:Class="WPFVisualTreeH…
原文:WPF命中测试示例(一)--坐标点命中测试 命中测试也可被称为碰撞测试,在WPF中使用VisualTreeHelper.HitTest()方法实现,该方法用于获取给定的一个坐标点或几何形状内存在的视觉元素,此次我们的示例是坐标点命中测试. 示例 首先使用Microsoft Expression Blend 3创建一个新的WPF应用程序项目: 在窗体上随意绘制几个图形,这里分别使用了:Rectangle.Ellipse.Path元素. 在右下角绘制一个ListBox控件,命名为l1: 在视觉…
概述:  WPF中的Canvas是常用的一个绘图控件,可以方便地在Canvas中添加我们需要处理的各种元素如:图片.文字等.但Canvas中元素增加到一定数量,并且有重合的时候,我们如何通过在Canvas中点击鼠标,获得我们想要的元素,然后再对该元素做出相应的控制? 命中测试,可以很好地解决这个问题 本文目的:  使用命中测试,选取Canvas中相应Element. 正文:  可视化树如何影响命中测试 可视化树中的起始点确定在对象的命中测试枚举过程中返回哪些对象.如果有多个要执行命中测试的对象,…
原文:WPF命中测试示例(二)--几何区域命中测试 接续上次的命中测试,这次来做几何区域测试示例. 示例 首先新建一个WPF项目,在主界面中拖入一个按钮控件,并修改代码中的以下高亮位置: 当前设计视图界面如下: 接下来,转到窗体的“Window_Loaded”事件处理函数,编写函数代码: private void Window_Loaded(object sender, RoutedEventArgs e) { Random r = new Random(); ; i++) { var o =…
1. 添加鼠标左键处理 AddHandler(DataGrid.MouseLeftButtonDownEvent, new RoutedEventHandler(grdStudyList_MouseLeftButtonDown), true); 2. 命中测试  private void grdStudyList_MouseLeftButtonDown(object sender, RoutedEventArgs e)         {             Point CurrentPos…
原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 作者:webabcd介绍重新想象 Windows 8 Store Apps 之 控件基础 DependencyProperty - 依赖属性 AttachedProperty - 附加属性 控件的继承…
[源码下载] 背水一战 Windows 10 (69) - 控件(控件基类): UIElement - Manipulate 手势处理, 路由事件的注册, 路由事件的冒泡, 命中测试的可见性 作者:webabcd 介绍背水一战 Windows 10 之 控件(控件基类 - UIElement) Manipulate 手势处理 路由事件的注册 路由事件的冒泡 命中测试的可见 示例1.演示 Manipulate 手势处理Controls/BaseControl/UIElementDemo/Manip…
分页技巧_测试并继续改进分页用的QueryHelper辅助对象 QueryHelper.java /** * 用于辅助拼接HQL语句 */ public class QueryHelper { private String fromClause; // FROM子句 private String whereClause = ""; // Where子句 private String orderByClause = ""; // OrderBy子句 private L…
转自:http://www.cnblogs.com/tmywu/archive/2010/09/14/1825650.html 在WPF中我们可以将Canvas当成一种画布,将Canvas中的控件当成元素,讲其转成位图文件: 如下效果 图1.1 你可以设置Canvas的宽度.高度和颜色类型,生成任何你想要的图片.实时呈现你设置的样式等效果. 包括创建一些特效如阴影等. WPF提供RenderTargetBitmap类将任何容器控件渲染成一个位图. 新建一个WPF项目,在页面中创建一个CANVAS…
要实现的功能效果图如下:因为我们要测试数据是从输入框获得的,所以,我们的连接字符串不是写死在应用程序中的.下面我就详细介绍一下.…
需求:界面上有一个按钮,点击后联网下载一张PNG图片,保存到本地指定路径. 重要参考: http://stackoverflow.com/questions/24797485/how-to-download-image-from-url-using-c-sharp 测试同步下载方法: /// <summary> /// 按钮事件:测试下载功能 /// </summary> /// <param name="sender"></param>…
在写自定义控件的时候,有一部分功能是当内部的值发生变化时,需要通知控件的使用者,而当我在写依赖项属性的时候,我可以通过popdp对应的代码模板来完成对应的代码,但是当我来写属性更改回调的时候,却发现没有对应的RoutedEvent,导致需要手撸那么多的代码,而很多时候一旦项目中赶进度,也许就会因为这个原因,把VM下的逻辑放到了UserContorl里了.(我review别人的代码时,发现了好多这种现象,但是逻辑都写完了,改动又太大,而且可能他们一直处于加班状态,我也不好意思在指出这些问题).所以…
原文:2019-11-29-WPF-模拟触摸设备 title author date CreateTime categories WPF 模拟触摸设备 lindexi 2019-11-29 08:47:53 +0800 2019-5-11 17:2:6 +0800 WPF 在 WPF 中触摸只是框架的一层,可以通过代码模拟触摸 创建一个类继承 TouchDevice 然后重写 GetTouchPoint 和 GetIntermediateTouchPoints 方法,可以在这个类里面通过调用 R…
title author date CreateTime categories WPF 模拟触摸设备 lindexi 2019-05-12 16:19:32 +0800 2019-5-11 17:2:6 +0800 WPF 在 WPF 中触摸只是框架的一层,可以通过代码模拟触摸 创建一个类继承 TouchDevice 然后重写 GetTouchPoint 和 GetIntermediateTouchPoints 方法,可以在这个类里面通过调用 ReportDown 等方法模拟触摸的按下和移动 最…
在以前的博文中,时常有分享Fiddler的一些使用技巧,今天再贴下. Fiddler抓包工具使用详解 利用Fiddler拦截接口请求并篡改数据 Fiddler使用过程中容易忽略的小技巧 Mock测试,结合Fiddler轻松搞定不同场景 以上这些,就是以前的一些实践总结.今天,再来分享一个不可不知的小技巧,实际工作当中,是可以辅助自己完成测试的. 模拟弱网 相信大家在进行测试过程中,都会关注到弱网测试.web端是可以通过浏览器的开发者工具中的Network设置网络数据,app端也可以通过切换网络的…
Netperf测试技巧   Netperf测试技巧 1.概况 Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输.Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式.Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据. Netperf工具以client/server方式工作.server…
回顾 上一篇我们介绍了WPF基本的知识.并且介绍了WPF与winform传统的cs桌面应用编程模式上的变化,这篇,我们将会对WPF的一些基础的知识做一个简单的介绍,关于这些基础知识更深入的应用则在后续的篇幅中大幅度的应用. 本文大纲 什么是xaml 什么是路由事件 WPF都提供了那些基础控件 什么是依赖属性 元素绑定 WPF中的资源 WPF的几种布局方式 什么是Xaml Xaml(Extensible Application Markup Language) 可扩展应用程序标记语言,该语言基于x…
1.DispatcherObject类表示具有相关联的对象分派器.调度程序处理要在特定线程上执行工作的请求队列.它能够在其关联的线程上调用方法. DispatcherObject是对象的基类,用于跟踪与创建它们的线程关联的Dispatcher. WPF控件继承自DispatcherObject,因为它们需要从创建它们的线程调用它们的方法. DispatcherObject有两个方法可以帮助确保从正确的线程调用控件的方法. CheckAccess - 检查当前线程是否可以调用控件上的方法 Veri…
原文:WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形 说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. WPF将易用性的理念带入了3D世界,WPF中3D也工作在一种保留模式下,这意味着系统会负责刷新与重绘.WPF中2D图形与3D图形系统有着很紧密的融合,首先在绘图系统基础及2D图形篇所介绍的概念对3D图形是适用的.2D媒体,如Video,Drawing和Visual…
         原著:AY WPF博客- 把wpf推广出去,让那些鄙视的人说不 大家好! 我是AY,首先声明,我在做一件很枯燥的事情,我是个91后程序员,每天熬夜完成计划的过着下班后的生活. 那天有人反对,那天有人安慰,那天有人嘲讽,那天有人祝福. 过了6个月后,我对自己的梦想一直没有改变过,继续坚持,终于,AYUI诞生了. 今天有人说造轮子,今天有人说你好厉害,今天有人说开源吗? 有人说好喜欢... 有贬有褒,但是好的声音多了. 但是身体的各种问题也来了.. AYUI自定义安装包:演示视频:…
最近在做WPF方面的内容,由于好多属性不太了解,经常想当然的设置,经常出现自己未意料的问题,所以感觉得梳理下. ps:先补下常用控件的类结构,免得乱了 .NET Framework 4.5 Using System.Windows.Controls; 这样就很清楚了,先总结下FrameworkElement 类: “为 Windows Presentation Foundation (WPF) 元素提供 WPF 框架级属性集.事件集和方法集. 此类表示附带的 WPF 框架级实现,它是基于由 UI…
WPF学习之路初识   WPF 介绍 .NET Framework 4 .NET Framework 3.5 .NET Framework 3.0 Windows Presentation Foundation (WPF) 是下一代显示系统,用于生成能带给用户震撼视觉体验的 Windows 客户端应用程序. 使用 WPF,您可以创建广泛的独立应用程序以及浏览器承载的应用程序.示例包括下图中显示的 Contoso Healthcare Sample Application(Contoso Heal…
如题,项目中需要实现使用鼠标拖动.缩放一个矩形框,WPF中没有现成的,那就自己造一个轮子:) 造轮子前先看看Windows自带的画图工具中是怎样做的,如下图: 在被拖动的矩形框四周有9个小框,可以从不同方向拖动来放大缩小矩形框,另外需要注意的是,还有一个框,就是图中虚线的矩形框,这个框,是用来拖动目标控件的:我们要做的,就是模仿画图中的做法,在自定义控件中显示10个框,然后根据鼠标所在的框来处理鼠标输入,实现拖动与放大. 参考这篇博文继续聊WPF——Thumb控件得知,WPF中有现成的拖动控件,…
一.简介 为了后面行文顺利,在进入正文之前,我们首先对本文所涉及到的绑定知识进行简单地介绍.该节包含绑定的基本组成以及构建方式. WPF中的绑定完成了绑定源和绑定目标的联动.一个绑定常常由四部分组成:绑定源.路径.绑定目标及目标属性,同时转换器也是一个非常重要的组成.绑定源用来标示源属性所存在的类型实例,路径用来标示需要绑定到的处于绑定源之上的源属性,绑定目标标示将接受相应更改的属性所在的实例,目标属性则用来标示接受绑定运行值的目标,而转换器则在源属性和目标属性不能直接赋值时执行转化工作.这四部…
介绍概念之前,先来分析一段代码: xaml代码如下: <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsof…
原文:WPF 高速书写 StylusPlugIn 原理 本文告诉大家 WPF 的 StylusPlugIn 为什么能做高性能书写,在我的上一篇博客和大家介绍了 WPF 的触摸原理,但是没有详细告诉大家如何通过触摸原理知道如何去做一个高速获得触摸的应用,所以本文就在上一篇博客的基础继续告诉大家底层的原理 如果觉得原理很无聊,就直接关闭本文,因为本文都是理论,不会告诉大家如何做高性能书写 在 WPF 如果想要做高性能的书写,就需要足够快获得用户的触摸输入,而如果直接拿到的是路由的输入就会存在下面的问…
原文:在WPF中减少逻辑与UI元素的耦合             在WPF中减少逻辑与UI元素的耦合 周银辉 1,    避免在逻辑中引用界面元素,别把后台数据强加给UI  一个糟糕的案例 比如说主界面上有一个显示当前任务状态的标签label_TaskState,我们会时常更新该标签以便及时地将任务状态通知用户.那么很糟糕的一种假设是我们的代码中会到处充斥着这样的语句段this.label_TaskState .Content = this.GetStateDescription(TaskSta…
WPF 中的一些图片处理方法 一,视觉处理(控件展示) 1,显示图片 Image控件展示 Xaml代码: <Image source="/Resources/Images/1.png"/> 缩放位图渲染算法 Xaml代码: <Image Source="/Resources/Images/1.jpg" RenderOptions.BitmapScalingMode="Fant"/> 枚举值 描述 Fant 使用超高质量 F…
控件有默认样式,但是有时候默认样式并不够用,就需要美化. 1.常用的方法是美术出图,直接贴图进去,效果又好又简单(对程序来说). 用图片有三种方式:设置控件背景图片.设置控件内容为图片和直接使用图片做控件三种. <Window x:Class="战五渣之环游世界.WPF.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://…
前面几章介绍了处理适量适中的图形内容的最佳方法.通过使用几何图形.图画和路径,可以降低2D图形的开销.即使正在使用复杂的具有分层效果的组合形状和渐变画刷,这种方法也仍然能够正常得很好. 然而,这样设计不适合需要渲染大量图形元素的绘图密集型应用程序.例如绘图程序.演示粒子碰撞的物理模型程序或横向卷轴形式的游戏.这些应用程序面临的不是图形复杂程度的问题,而纯粹是单独的图形元素数量的问题.即使使用量级更轻的Geometry对象代替Path元素,需要的开销也仍会较大地影响应用程序的性能. WPF针对此类…