WPF经纬度控件

1.需求及思路

绘制一个控件,可以设置经纬度,经纬度用double类型表示,支持绑定数据,数据更改通知。错误验证,输入检校。

大致设计界面如下图:

2.主要代码

 主要代码在于计算,double类型转换成三个数:度数,分数,分数的小数。

  var uc = d as LonLatSetUc;
            if (uc != null && Math.Abs((decimal) e.NewValue - (decimal) e.OldValue) > 0.0000001m)
            {
                uc.DirectionSelectedIndex = uc.Value > 0 ? 0 : 1;
                uc.Deg = Math.Abs((int) uc.Value);
                var tempMin = (Math.Abs(uc.Value) - uc.Deg)*60;
                uc.Min = (int) (tempMin + 0.0000001m);
                //因decimal精度问题,需要四舍五入
                uc.MinDecimal = (int) ((tempMin - uc.Min + 0.0000001m)*1000);
            }

  

3.源码下载:

旧版本

 https://files.cnblogs.com/files/lizhijian/%E7%BB%8F%E7%BA%AC%E5%BA%A6%E6%8E%A7%E4%BB%B6.rar

更新:

https://files.cnblogs.com/files/chlm/%E7%BB%8F%E7%BA%AC%E5%BA%A6%E6%8E%A7%E4%BB%B6.rar

感谢阅读

原文地址:https://www.cnblogs.com/congqiandehoulai/p/8608537.html