0

所以这是问题所在,我试图让那个圆圈与数字对齐。当我在混合中执行此操作时,它显示我有一个 Left (23),我尝试以编程方式执行该操作 Canvas.SetLeft(thePanel,23) 它超出了。更好的是,如果有人知道 Silverlight 中这样的控件,请告诉我。这样做是当用户单击一个数字时,绿色圆圈会转到该数字,因此看起来用户已经选择了它。替代文字

混合

4

1 回答 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 回答