WPF实现组态软件-逼真的管道和速度可变流体(二)

本文将《WPF实现组态软件-逼真的管道和速度可变流体(一)》涉及的组态控件重新实现了一下并封装成控件库,使用时只要从工具箱的选择项里导入到工具箱就可以像Visual Studio自带的WPF控件一样拖控件到窗体。

下面借助动图看看控件的关键属性的效果:

上图是管道的Data属性,它实际就是一个个Point,格式为<100 100,90 90>xy数值以空格隔开,不同的点以逗号隔开。有一点需要强调的是管道的HorizontalAlignment和VerticalAlignment最好都设置为Stretch。

上图演示的是管道的ConnectConfig属性,这个属性描述了管道连接到例如水泵或者多通的位置。格式为<Head multyconnectName Top,Real multyconnectName Button>,具体的意思是将这跟管道的起始/末端连接到名为multyconnectName的控件的左/上/右/下。

上图演示的是管道的RendColor属性,标识渲染颜色。格式为<#FFFFFF #FFFFFF #FFFFFF>,有3个颜色,中间的颜色为管道中心反光的颜色,其它两个颜色为管道边缘的颜色。PipeDiameter属性表示冠达的直径。管道还有一个属性没有演示,那就是ShowFluid,表示是否显示管道内的流体效果。

上图演示了多通的多个属性
MeterMinValue表示表盘的最小刻度值;
MeterStep表示表盘一大格的值;
MeterValue表示表盘指针指向的刻度值;
PipeDiameter表示多通连接的管道的直径,这个属性是所有能与管道连接的控件都有的属性;
ShowMeter表示多通是否显示表盘;
ShowBarValve表示是否显示阀门扳手;
ShowRoundValve表示是否显示阀门圆盘;
RotateAngle表示多通沿多通中心点旋转的角度,现实中的管道可能是斜的,这时多通也要跟着旋转一个角度;

最后再提一个可能产生困惑的场景,当我们配置了控件的属性并达到我们的预期时按F5调试结束后,发现控件之间的连接效果没有了,这时不要着急,这时因为VS重置了WPF的设计窗口。如果要恢复只需要将相关的属性值改动一下再改回去,让依赖属性产生一次Change就行了。

代码有许多不到位的地方,需要更多效果和功能的朋友可以自己在源码里修改。

 VS2022扩展版ConPipe控件下载地址(.NetCore Trial版):wpfcore.conpipe.rar

 

posted @ 2021-02-08 15:56  hurst  阅读(1425)  评论(1)    收藏  举报