WPF效果第一百九十七篇之Path范围内拖拽

前面效果中分享了彩色马蹄图的效果;这不今天再次在马蹄图的基础上,实现只能在Path内的拖拽效果;闲话不多扯直接看效果:

1、关于拖拽顶点实现色域范围选择,参考:

https://www.codeproject.com/Tips/828310/The-simplest-WPF-diagram-designer-part

2、通过Blend绘制了色度图中间区域的Path:

<Path Data="M95.75,76 L92.9375,78.6875 90.936644,81.186535 89.24817,82.935546 87.310123,86.185366 C87.310123,86.185366 85.310174,90.058861 85.122632,90.058861 84.93509,90.058861 83.934871,92.371344 83.934871,92.371344 L82.810165,94.183441 80.685364,98.619329 79.060687,103.1182 77.309941,107.80453 75.996727,111.42806 74.996561,115.11403 74.308945,117.98822 72.621704,123.92405 70.746437,132.10985 69.746295,138.04575 68.871167,142.48258 67.18343,151.41775 66.183801,161.60202 65.245666,167.64207 64.66225,174.22327 64.245183,181.88785 C64.245183,181.88785 63.745109,188.2191 63.745109,188.63566 63.745109,189.05221 63.870129,197.96605 63.870129,197.96605 L62.994995,206.33872 62.494919,220.33482 63.120014,235.45561 63.370053,250.45144 63.870129,259.07403 64.661917,270.61249 65.161993,286.60767 67.162299,304.26902 68.162451,322.43092 69.662681,334.59416 71.079564,344.59103 71.57964,355.00442 73.163216,364.16884 74.33006,375.83224 75.371886,384.78771 77.184663,395.59716 78.559873,405.28142 79.872574,414.15388 81.247784,422.31822 83.081398,431.56524 84.164897,441.64536 86.498586,453.64192 89.249007,467.88783&#xd;&#xa;92.06181,484.44595 95.56233,502.25338 99.125359,518.37379 101.16733,528.20432 106.25142,548.8651 110.66874,567.35983 112.66904,574.60777 115.08606,583.43859 117.83647,593.01919 120.87972,600.7881 124.58747,613.18011 127.75461,622.34417 130.00495,629.42549 135.67245,645.6292 139.00714,653.58502 143.19531,664.76933 145.75729,670.39298 148.3826,675.7027 150.38289,679.95148 154.44608,688.01296 157.07087,693.07319 159.82075,696.94707 162.32161,700.57104&#xd;&#xa;164.88499,704.19501 168.57302,708.63124 173.01066,713.50533 177.32378,717.62863 181.51239,721.25307 184.63785,724.37666 187.07571,726.68899 189.01399,727.93861 190.51422,728.12605 192.3895,726.93938 196.39011,724.81498 200.70327,723.003 205.51599,720.50371 214.26728,716.3174 222.64352,712.1311 228.83194,708.94451 237.83379,704.63324 246.3356,700.50941 254.46237,696.94793 259.52515,694.07375 273.02722,687.38815 286.71682,680.64008 300.46841,673.892&#xd;&#xa;320.15835,664.70712 327.78449,660.89571 335.78568,656.95933 344.30778,652.73137 352.10043,648.98244 356.78914,646.42067 374.04171,638.17302 387.58542,631.17502 408.67156,621.21952 433.80032,609.34791 471.80571,590.47825 513.56224,570.1091 557.35995,548.97107 581.94696,536.47463 592.07429,532.07828 600.07476,527.99605 604.24205,525.99662 607.40919,524.41373 609.07605,523.53898 610.20122,522.95582 611.15934,522.12272 610.20086,521.41459 607.1591,517.74897&#xd;&#xa;604.242,514.66651 600.99152,511.20916 597.85564,507.59561 594.19885,503.72171 591.32342,500.69132 587.15618,496.2135 582.48882,491.29824 577.7589,486.3829 574.25839,482.63397 570.98756,479.33292 566.75731,474.73005 565.06952,473.01171 562.2566,470.13753 559.94376,467.45079 553.77622,460.97355 547.47316,454.39201 542.0036,448.39372 537.64878,443.52011 530.60611,436.10564 528.20992,433.50222 524.50104,429.69081 521.66728,426.87911 512.06169,416.73617&#xd;&#xa;501.01838,405.03117 492.35043,395.7005 475.30623,377.53901 460.86659,362.29336 444.13494,345.25655 431.2997,331.01061 416.67249,315.97311 401.71194,299.68608 391.54376,288.93914 384.61567,281.26471 379.50031,276.19278 374.32248,270.56952 370.04057,266.44555 366.29001,262.61331 362.28945,258.61459 356.7886,252.65781 351.9129,247.3678 348.20402,243.36894 342.95324,237.87051 339.84861,234.76723 334.22278,228.83142 329.36787,224.16593 325.24225,220.08376&#xd;&#xa;323.49199,217.87605 319.84564,214.12728 316.88687,210.8782 313.28217,207.25424 308.61481,202.79718 303.73908,197.44454 299.92602,193.67478 295.94626,189.71757 292.32072,185.96864 287.23663,181.42827 283.56942,177.53355 278.13111,172.63911 273.85965,168.64025 268.69221,163.84995 256.02366,152.16578 244.89701,142.2936 243.08424,140.45037 239.23992,137.01385 235.67689,133.63981 228.20703,127.45408 222.39367,122.86164 216.11148,117.67562 211.70458,114.20785&#xd;&#xa;206.66216,110.34437 200.59876,105.88731 195.86889,102.61741 189.30542,98.202002 185.8049,95.952644 180.09571,92.203521 174.5949,88.621401 162.69729,81.87313 149.69537,75.250214 145.17387,73.250784 139.49073,70.985807 134.53686,69.126761 130.16121,67.720911 123.67067,66.919431 120.87859,66.643137 117.87814,66.335556 116.14872,66.419199 114.77352,66.440026 113.27329,66.689955 111.81474,66.939884 110.06448,67.29395 108.46008,67.814635 106.50145,68.626903&#xd;&#xa;104.60534,69.626619 102.81341,70.584679 101.35486,71.501085 99.625434,72.646592 98.166884,73.667134 96.958371,74.708504 96.395787,75.333326 z"Name="ColorSpaceBackPath" Fill="#02FFFFFF" Stretch="Fill" Height="661.979" Width="548.583"Canvas.Left="1.5" Canvas.Top="54.3"Stroke="Transparent" StrokeThickness="0"/>

3、查了资料说可以用下面方式:

ColorSpaceBackPath.Data.FillContains(point);

4、效果是有了,可能是我姿势不对,没达到我的预期;这时我又无脑的想到了HitTest,毕竟前面也玩了好几次了;再玩一次也能接受:

VisualTreeHelper.HitTest(MyCanvas, new HitTestFilterCallback(OnHitTestFilterCallback), new HitTestResultCallback(OnHitTestResultCallback), new PointHitTestParameters(currentPoint));

5、在OnHitTestFilterCallback中:

string name = path.Name;
if(name.Equals("ColorSpaceBackPath"))
{return HitTestFilterBehavior.ContinueSkipChildren;
}

6、在OnHitTestResultCallback中:

Path path = result.VisualHit as Path;
if(path != null)
{string name = path.Name;if(name.Equals("ColorSpaceBackPath")){CurrentShape.Left = CurrentPoint.X;CurrentShape.Top = CurrentPoint.Y;return HitTestResultBehavior.Stop;}
}

最终简单的效果先这样吧02a261ad0e8a85a6e35bc88774b782b8.png;以后有时间的话,可以再去摸索一下更复杂的效果9935ab284f821d93ae58847eae210f61.png;编程不息、Bug不止、无Bug、无生活b2228e67f12f230fecf85d2ce48b2720.png;改bug的冷静、编码的激情、完成后的喜悦、挖坑的激动 、填坑的兴奋;这也许就是屌丝程序员的乐趣吧;今天就到这里吧;希望自己有动力一步一步坚持下去;生命不息,代码不止;大家抽空可以看看今天分享的效果,有好的意见和想法,可以在留言板随意留言;我看到后会第一时间回复大家,多谢大家的一直默默的关注和支持!如果觉得不错,那就伸出您的小手点个赞并关注一下!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu16.04 + caffe-ssd + [CPU_ONLY] + KITTI 训练总结

本次训练主要参考&#xff1a;http://blog.csdn.net/jesse_mx/article/details/65634482 感谢 Jesse_Mx &#xff0c;帮助了我很多。 坑一【openCV未安装成功】&#xff1a; openCV未安装成功会导致各种莫名的问题&#xff0c;比如&#xff1a;“No module named cv2”问题。 然…

PHP面向对象常见的关键字和魔术方法

在PHP5的面向对象程序设计中提供了一些常见的关键字&#xff0c;用来修饰类、成员属性或成员方法&#xff0c;使他们具有特定的功能&#xff0c;例如final、static、const等关键字。还有一些比较实用的魔术方法&#xff0c;用来提高类或对象的应用能力&#xff0c;例如__call()…

python中字典长度可变吗_Python:如何给字典分配一个长度可变的列表值?

我试图在100个2D numpy数组中定位质心&#xff0c;如下所示&#xff1a;array([[ 0.216, 0.24 , 0.244, ..., 0.679, 0.684, 0.707],[ 0.23 , 0.229, 0.238, ..., 0.675, 0.676, 0.695],[ 0.221, 0.238, 0.24 , ..., 0.669, 0.677, 0.684],...,[ 0.937, 0.925, 0.923, ..., 0.7…

如何在论文中自动生成标准的参考文献格式

首先下载EndNote软件&#xff0c;word中会自动显示EndNote选项 选择EndNote 选择导出会下载一个txt文件 打开EndNote中向下的箭头导入&#xff08;从文件导入文献到库中&#xff09;找到刚才下载的txt文件 点击选择按键找到txt文件 选择打开即可 选择导入 选择导入的内容…

PrincetonAlgorithm I - Assignment2 Deques and Randomized Queues

Programming Assignment2 - Deque and Randomized Queues Review Assignment Specification 课程笔记 Subtext: Modular Programming Stacks and Queues are fundamental data types Value: collection of objectsBasic Operation: insert, remove, iterate.Difference: which …

【Android Studio】查看源码时提示“throw new RuntimeException(Stub!)”

如题…… 详细问题及解决方法&#xff1a;http://blog.csdn.net/u010917495/article/details/51234179 转载于:https://www.cnblogs.com/jaxer/p/7071431.html

TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—基础知识篇...

最近遇到一个线上报警&#xff1a;服务器出现大量TIME_WAIT导致其无法与下游模块建立新HTTP连接&#xff0c;在解决过程中&#xff0c;通过查阅经典教材和技术文章&#xff0c;加深了对TCP网络问题的理解。作为笔记&#xff0c;记录于此。 备注&#xff1a;本文主要介绍…

如何在Jupyter Notebook中使用Python虚拟环境

1、创建虚拟环境&#xff1a; condacreate-n 环境名 python版本号 例如创建一个叫做dl的虚拟环境,python版本为3.7&#xff1a; conda create -n dl python3.7 2、激活虚拟环境&#xff1a; conda activate 环境名 3、在虚拟环境中安装ipykernel (切记这一步是在对应的虚…

python分离文件名和路径_python 分离文件名和路径以及分离文件名和后缀的方法...

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云文件存储NAS是一个可共享访问&#xf…

JS基础入门篇( 一 )

1.JS存放在代码中的位置 1.JS写在行间 <div style"background-color: red;" onclick"alert(1)" >hello world</div> 优点&#xff1a;直接&#xff0c;简单 缺点&#xff1a;不方便复用和维护,不符合结构行为分离规范2.JS写在script ( 一般写在…

开源许可证,欢迎来到云时代

出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013)作者 | 唐建法前言开源许可证从最早的 GPL 开始&#xff0c; 逐渐演进到 GPLv2 和 v3&#xff0c;中间还有 Apache、MPL、AGPL、LGPL 等&#xff0c;但是近几年来有一批新的许可证的出现&#xff0c;引起了社区的一些…

15_新闻客户端_展示文字内容完成

1232131转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7074670.html

python socket传输图片_python使用socket传输图片视频等文件的实现方式

python使用socket传输图片视频等文件的实现方式来源&#xff1a;中文源码网 浏览&#xff1a; 次 日期&#xff1a;2019年11月5日【下载文档: python使用socket传输图片视频等文件的实现方式.txt 】(友情提示:右键点上行txt文档名->目标另存为)python 使用socket传输…

selenium - Select类 - 下拉框

WebDriver提供了Select类来处理下拉框。 如百度搜索设置的下拉框&#xff0c;如下图&#xff1a; from selenium import webdriver from selenium.webdriver.support.select import Select from time import sleepdriver webdriver.Chrome() driver.implicitly_wait(10) drive…

ubuntu安装samba

1 首先当然是要安装samba了&#xff1a;sudo apt-get install sambasudo apt-get install smbfs 2 下面我们来共享群组可读写文件夹&#xff0c;假设你要共享的文件夹为&#xff1a; /home/ray/sharemkdir /home/ray/sharechmod 777 /home/ray/share 备份并编辑smb.conf允许网络…

.NET 7 预览版 7

点击上方蓝字关注我们&#xff08;本文阅读时间&#xff1a;12分钟)今天我们发布了 .NET 7 预览版 7。这是 .NET 7 的最后一个预览版&#xff0c;下一个版本将是我们的第一个候选版本 &#xff08;RC&#xff09;。.NET Conf 2022 的日期已经公布&#xff01;请于 2022 年 11 月…

QWaiteCondition思考3

QWaitConditioin::wait() 接收一个mutex作为参数&#xff0c;这个mutex应该被调用线程初始化为锁定状态。在线程进入休眠状态&#xff08;waite&#xff09;之前&#xff0c;mutex会被解锁。当线程被唤醒&#xff08;WakeOne/wakeAll)时&#xff0c;mutex会处于锁定状态。而且&…

python实现定时任务的方式_Python实现定时执行任务的三种方式简单示例

本文实例讲述了Python实现定时执行任务的三种方式。分享给大家供大家参考&#xff0c;具体如下&#xff1a;1.定时任务代码#!/user/bin/env python# Time :2018/6/7 16:31# Author :PGIDYSQ[email protected] :PerformTaskTimer.py#定时执行任务命令import time,os,schedschedu…

js 获取data-属性值

// html code <span class"1pc_price" data-price"<?php echo Country::change($29.95,$money_type) . "<br/>Download Instantly"; ?>"></span>// js codevar price_1pc_hb document.getElementsByClassName(1pc_p…

android--------volley之网络请求和图片加载

为什么80%的码农都做不了架构师&#xff1f;>>> Volley是 Google 推出的 Android 异步网络请求框架和图片加载框架。 Volley的特性 封装了的异步的请求API。Volley 中大多是基于接口的设计&#xff0c;可配置性强。一个优雅和稳健的请求队列&#xff0c;一定程度符…