WP7: переместить элемент управления - PullRequest
0 голосов
/ 06 февраля 2012

Я пытаюсь переместить кнопку в WP7, используя MouseLeftButtonDown, MouseMove и MouseLeftButtonUp. Проблема в том, что когда я перемещаю его (с помощью мыши), он выглядит нестабильным, и я не могу это объяснить.

bool clicked = false;
private void button1_MouseMove(object sender, MouseEventArgs e)
{
    Point p = e.GetPosition(sender as Button);
    double margin1, margin2;
    margin1 = p.X - (button1.ActualWidth / 2) + 12;

    // 12 is the distance between left of the page and the content panel
    margin2 = p.Y - (button1.ActualHeight / 2) + 161;

    // 161 is the distance between top of the page and the content panel
    button1.Margin = new Thickness(margin1, margin2, 0, 0);
}

private void button1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    clicked = true;
}

private void button1_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    clicked = false;
}

Я что-то не так делаю? Заранее спасибо!

1 Ответ

1 голос
/ 06 февраля 2012

Вы должны использовать Canvas в качестве контейнера вашего Button элемента управления. Затем вы можете указать значения Canvas.Left и Canvas.Top на вашем Button и перемещать его правильно, без необходимости играть с размером и полем. См. здесь для примера, связанного с вашей проблемой.

...