Popup定位到对应圆弧合适的位置去显示(这里取的是圆弧的中间);
比较抱歉的是样式比较丑陋,忽略吧,重点看定位;
圆弧部分
Arc有两个重要的属性:StartAngle起始角度和EndAngle终结角度...,见图;
椭圆
从图可知,作为背景的椭圆分为两种情况,小于180度,椭圆靠容器的右边对齐,大于180度,靠容器的左边对齐;
也就是代码的这部分;
Ellipse ell = new Ellipse()...;
return pLine;
}
Popup的定位
首先以0-90度为例,说明一些基本的东西,见图;
首先Popup默认的位置,都是在它容器的左下方的,Popup的左上角和容器的左下角重合...,也就是sinA的值已知了,那么就可以求出a和b的长度,然后就可以去移动Popup了;
1)0-90度
X轴 :
1、向右移动二分之一个容器的width ;
2、向右移动一个b的距离;
Y轴 :
1、...:
1、上移二分之一个圆弧的Thickness,以保证标记的起点在圆弧的中央;
2、上移一个(r-a)的距离;
4)270-360度
X轴 :
1、向左移动一个a的距离;
Y轴 :
1、向上移动二分之一个容器的