Задать вопрос
AlexNineteen
@AlexNineteen
Привет.

Как двигать контрол по окну?

Есть окно, в нём TextBlock. Мне нужно перетаскивать этот текстблок по всему окну. Пошарился по гуглу, нашёл, что это делается с помощью PreviewMouseLeftButtonDown, PreviewMouseLeftButtonUp и MouseMove. Но что-то не смог разобраться как это сделать.
Подскажите пожалуйста.
  • Вопрос задан
  • 88 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@Got_Oxidus
Учусь
Объявим переменную, разрешающую перетаскивание
private Boolean canMove = false;

Если пользователь держит кнопку, то переменная true.
Отжал false.
private void lbl_MouseLeftButtonUp(Object sender, MouseButtonEventArgs e)
{
    canMove = false;
}

private void lbl_MouseLeftButtonDown(Object sender, MouseButtonEventArgs e)
{
    canMove = true;
}


Перетаскиваем
private void Window_MouseMove(Object sender, MouseEventArgs e)
{
    // отменяем перетаскивание, если пользователь не нажал кнопку.
    if (!canMove) return;

    Control control = this.lbl;

    //Берем позиции мыши.
    Double x = e.GetPosition(this).X,
        y = e.GetPosition(this).Y;

    //Устанавливаем значение через margin
    control.Margin = new Thickness(x, y, 0, 0);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы