所以这就是问题,我试图让那个圆圈对齐数字。当我在混合中这样做时,它向我显示我有一个Left(23),我尝试以编程方式执行Canvas.SetLeft(thePanel,23)它超越了。更好的是,如果有人知道像silverlight这样的控件让我知道。这样做的是当用户点击一个数字时,绿色圆圈被认为是转到该数字,所以看起来用户已经选择了它。
答案 0 :(得分: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值您的圆圈移动到所需的位置。