一.前言 之前分享过一期关于DrawingVisual来绘制高性能曲线的博客,今天再分享一篇通过另一种方式来绘制高性能曲线的方法,也就是通过WriteableBitmap的方式:具体的一些细节这里就不啰嗦了,同样是局部绘制的思想,滚动条拖动到哪里,就只绘制那一部分的曲线,直接贴代码: 二.正文 1.新建一个类,继承FrameworkElement,然后在里面实现一下绘图的逻辑: using System; using System.Collections.Generic; using Syste…
一.前言 项目中涉及到了心率监测,而且数据量达到了百万级别,通过WPF实现大数据曲线图时,尝试过最基础的Canvas来实现,但是性能堪忧,而且全部画出来也不实际.同时也尝试过找第三方的开源库,但是因为曲线图涉及到很多细节功能,第三方的肯定也没法满足.没办法,只能自己实现,上网查找后发现DrawingVisual这个玩意可以实现高性能画图,同时再搭配局部显示,这样就能实现自己想要的效果.话不多说,今天把大致的实现思路写一下,就不直接把项目的源码贴出来,写个简单的Demo就好了. 二.正文 1.首先…
一.前言 项目中之前涉及到胎儿心率图曲线的绘制,最近项目中还需要添加心电曲线和血样曲线的绘制功能.今天就来分享一下心电曲线的绘制方式: 二.正文 1.胎儿心率曲线的绘制是通过DrawingVisual来实现的,这里的心电曲线我也是采用差不多相同的方式来实现的,只是两者曲线的数据有所区别.心电图的数据服务器端每秒发送至客户端一个数据包,一个数据包钟心电的数据大概一百个左右,看过心电图的应该知道,心电图的效果是匀速绘制出来的,而不是一次性将一百个点绘制出来:项目中是通过将数据存到数据缓冲区,然后通过…
一.前言 在WPF开发过程中,ScrollViewer是一个很常使用到的控件,在自己工作的项目中,收到一个反馈就是当ScrollViewer里面的内容太长时,滚动条的滑块就会变得很小,然后导致点击起来不太友好.一开始想着是通过在样式里面设置滑块的最小值,但都没法生效.最后换了一个思路来,通过把原有的滑块隐藏,然后自己加一个控件来充当滑块来间接控制ScrollViewer的滚动. 二.正文 1.这里就直接拿之前写的那个曲线图控件来进行演示,当曲线图的数据很多时,滑块就会显得很小个,现在实在默认样式…
一.前言 在项目中,经常需要用到消息提醒功能,在以前接触安卓开发那会使用过Toast,于是打算在WPF上也来模仿一个,话不多说,撸起袖子干起来! 二.正文 1.首先新建一个工程,工程的目录如下 2.编写Toast.cs的代码,这里因为只需要显示文本信息,所以Toast继承Label即可,然后添加一个定时关闭的方法 public class Toast : Label { public Toast() { } public void SetTimeClose(TimeSpan time) { ne…
一.前言 该系列博客用于记录本人在WPF开发过程中遇到的各种知识点 二.正文 1.在工作的项目中,软件需要用到在线升级功能,由于第一次弄,在下载服务端的文件到本地时,文件的名称我选择直接生成为固定的格式,被同事发现后差点被笑掉大牙.然后他告诉我有专门的方法用于生成一串唯一的字母数字标识符,System.Guid.NewGuid(),通过这个来生成一个随机的字符串来用于文件名,就可以避免出现文件重名的情况. 2.GUID的应用非常广泛:注册表.类及接口标识.数据库.甚至自动生成的机器名.目录名等.…
一.唠唠叨叨 软件开发过程中,经常需要使用到获取exe当前目录这个功能,前同事在实现这个需求时使用的是Directory.GetCurrentDirectory()这个方法,但再最近的测试中,突然发现文件没有正常生成在exe所在的目录,找了很久突然发现生成在了自启动exe程序的bat文件所在的目录,因为软件是通过后台软件调用bat文件的形式来自启动.上网查了才发现,这种方式获取的目录是应用程序的当前工作目录,当前目录不同于原始目录,这是从中启动进程的目录.而我自己在获取当前exe目录用的是App…
一.前言 在自己的项目中挺多地方需要涉及到数据验证的,初期的实现方式都是通过点击确定后再逐个验证数据是否符合要求,但这种方式会让后台代码变得很多很乱.于是就开始在网上需求好的解决方式,刚好看到了一个大佬的博客写了关于数据验证的博客,也成功将那个方法用在项目中了,今天就来这里分享一下.博客原文:https://www.cnblogs.com/wzh2010/p/6518834.html 二.正文 1.这里写一个简单的例子来作为参考,首先新建个项目,按照常规MVVM构建好项目,如下图.然后添加需要用…
一.前言 工作中目前经手的项目是医疗相关的监护软件,所以会涉及到一些报警效果的实现,今天在这里就简单分享一下实现方式 二.正文 1.实现的方式比较的简单,就是通过一个Border控件,然后搭配DataTrigger和ColorAnimationUsingKeyFrames即可实现效果,这里直接贴出代码 <Window x:Class="AlarmFlashDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx…
一.前言 今天分享一下如何实现带递增递减按钮的TextBox控件 二.正文 1.之前的博客分享了一篇自定义XamlIcon控件的文章,这次就直接在那个项目的基础上实现今天这个自定义控件 2.首先添加两个图标资源,一个增加的按钮,一个减小的按钮,具体过程可以参考我之前写的文章 3.接着新增一个自定义控件,如图所示那个 4.添加后,项目中还会生成一个Themes文件夹,里面还有一个Generic.xaml的文件,这个文件可以用来写控件样式的,里面会自动生成一个最基础的控件样式,而那个NumberTe…