医疗体温单,三测单,基于WPF绘制实现,可自定义图表的显示配置,儿童&成人

记录一下自己基于WPF实现的桌面端体温单控件
桌面端做的比较多,熟悉一些,所以用的WPF来开发。
核心图表已封装为控件形式 化繁为简,复杂的都封装好了,配置一下规则就行了
Winform和WPF均可用
一个图表控件显示儿童和成人两种图表

  1. 核心中间图表,封装成控件,所有配置【行列,颜色,粗细,显示内容等十几种属性】及数据源均可通过数据绑定,无需更多操作
  2. 基本满足所有医疗体温单需求,图表中的两点重叠均可通过数据库配置自定义,心率脉搏不齐等等,均已不同医院需求,实现了4种【斜线阴影,直线阴影,一条线显示等等】
  3. 实现图表中数据悬浮显示,实现双击数据点,数据获取传出
  4. 数据都是通过存储过程处理,可动态处理
  5. 儿童和成人体温单均可通过配置属性,直接显示,简单高效,无需在弄二次开发儿童体温单
  6. 封装核心打印部分
  7. 实现多种属性均可自定义配置【不连线关键字,超过多久不连线等等七八种】
  8. 配置属性,非常清晰,可针对每一个项目及类型,做不同的配置处理,全属性封装

效果图如下
在这里插入图片描述
中间核心图表,封装后,只需配置属性和规则,即可实现大部分效果,儿童&成人 复杂的配置都封装好了 一个图表控件实现儿童和成人两种图表
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在WPF自定义控件中使用LiveCharts显示两个图表,可以使用以下步骤: 1. 引用LiveCharts NuGet包。 2. 在自定义控件的XAML文件中,添加LiveCharts的命名空间:xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" 3. 在自定义控件的XAML文件中,添加两个LiveCharts的控件(比如LineSeries、ColumnSeries等),并分别设置它们的数据源和属性。 4. 在自定义控件的代码文件中,为每个LiveCharts控件创建一个依赖属性,并在属性变化时重新绘制图表。 下面是一个简的示例代码,其中MyCustomControl是自定义控件,其中包含两个LiveCharts控件: ```csharp public class MyCustomControl : Control { static MyCustomControl() { DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomControl), new FrameworkPropertyMetadata(typeof(MyCustomControl))); } public SeriesCollection Series1 { get { return (SeriesCollection)GetValue(Series1Property); } set { SetValue(Series1Property, value); } } public static readonly DependencyProperty Series1Property = DependencyProperty.Register("Series1", typeof(SeriesCollection), typeof(MyCustomControl), new PropertyMetadata(null, OnSeries1PropertyChanged)); private static void OnSeries1PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var control = d as MyCustomControl; control.DrawChart1(); } public SeriesCollection Series2 { get { return (SeriesCollection)GetValue(Series2Property); } set { SetValue(Series2Property, value); } } public static readonly DependencyProperty Series2Property = DependencyProperty.Register("Series2", typeof(SeriesCollection), typeof(MyCustomControl), new PropertyMetadata(null, OnSeries2PropertyChanged)); private static void OnSeries2PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var control = d as MyCustomControl; control.DrawChart2(); } private void DrawChart1() { //绘制第一个图表 chart1.Series = Series1; } private void DrawChart2() { //绘制第二个图表 chart2.Series = Series2; } private LiveCharts.Wpf.CartesianChart chart1; private LiveCharts.Wpf.CartesianChart chart2; public override void OnApplyTemplate() { base.OnApplyTemplate(); chart1 = GetTemplateChild("PART_Chart1") as LiveCharts.Wpf.CartesianChart; chart2 = GetTemplateChild("PART_Chart2") as LiveCharts.Wpf.CartesianChart; DrawChart1(); DrawChart2(); } } ``` 在自定义控件的XAML文件中,可以使用以下代码来定义两个LiveCharts控件: ```xml <Style TargetType="{x:Type local:MyCustomControl}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type local:MyCustomControl}"> <Grid> <lvc:CartesianChart x:Name="PART_Chart1" /> <lvc:CartesianChart x:Name="PART_Chart2" /> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> ``` 然后,在使用自定义控件的地方,可以使用以下代码来设置两个图表的数据源: ```xml <local:MyCustomControl Series1="{Binding Data1}" Series2="{Binding Data2}" /> ``` 其中,Data1和Data2是两个SeriesCollection类型的数据源,可以在ViewModel中定义并绑定到视图中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值