所以这是问题所在,我试图让那个圆圈与数字对齐。当我在混合中执行此操作时,它显示我有一个 Left (23),我尝试以编程方式执行该操作 Canvas.SetLeft(thePanel,23) 它超出了。更好的是,如果有人知道 Silverlight 中这样的控件,请告诉我。这样做是当用户单击一个数字时,绿色圆圈会转到该数字,因此看起来用户已经选择了它。
问问题
847 次
1 回答
2
在您的 Circle 对象上,您必须设置圆的半径和 TranslateTransform 属性。假设您的 Circle 的半径为 15:
private const double Radious = 15.0;
private double _x = Radious;
private double _y = Radious;
private TranslateTransform _translation = new TranslateTransform();
以及处理 Circle 的 X 和 Y 坐标的属性,
public double X
{
get { return this._x; }
set
{
this._x = value;
_translation.X = this._x - Radious;
}
}
public double Y
{
get { return this._y; }
set
{
this._y = value;
_translation.Y = this._y - Radious;
}
}
在 Silverlight 中,您可以获得用户单击 Canvas 的位置,在面板的 Click Event 上设置此代码,并将圆心设置为用户单击的位置:
//Get the points where it was clicked
Point clickPoint = e.GetPosition(Canvas);
MyCircle.X = clickPoint.X;
MyCircle.Y = clickPoint.Y;
现在,如果您希望它们始终处于固定位置,您可以设置条件,如果用户单击数字周围,则将圆心设置为数字的中心,或者只是更改圆的 X 值移动到所需位置。
于 2010-04-05T16:34:26.477 回答