Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

C# Перемещаем форму за объект (+ Бонус)

Статус
В этой теме нельзя размещать новые ответы.

#Samurai

Умник
При выборе стиля окна без рамок необходимо сделать его таскание за какой-либо объект, дабы изменять его позицию на форме.
Для таких целей используется функция DragMove();

Эту функцию нужно повесить на событие MouseLeftButtonDown у нужного объекта.
Пример:
PHP:
private void rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    this.DragMove();
}
[HR][/HR]
Но чтобы весь мануал не состоял из одной функции - я приложу интересный вариант переноса окна. При переносе прозрачность окна/формы меняется на 50% и как только перетаскивание окна завершено - прозрачность возвращается.

Код:
PHP:
private void headerRect_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    if (e.ButtonState == MouseButtonState.Pressed)
    {
        DoubleAnimation anim = new DoubleAnimation();
        anim.From = Opacity;
        anim.To = 0.5;
        anim.Duration = TimeSpan.FromSeconds(0.2);
        BeginAnimation(OpacityProperty, anim);

        DragMove();
    }

    if(e.ButtonState == MouseButtonState.Released)
    {
        DoubleAnimation anim = new DoubleAnimation();
        anim.From = Opacity;
        anim.To = 1.0;
        anim.Duration = TimeSpan.FromSeconds(0.2);
        BeginAnimation(OpacityProperty, anim);
    }
}
Событие заменить на своё.

Автор: #Samurai
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу