Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перетаскивание формы за Border 
V
    Опции темы
CasperSC
Дата 31.3.2010, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 27.11.2009

Репутация: 1
Всего: 1



Пытаюсь перетащить форму за Border растянутый на всю форму, чтобы закруглить концы. Сама форма невидимая и имеет больший размер, чем Border, чтобы можно было отбрасывать тень. У меня не получается это сделать. На WinForms это делалось так:
Код

        private void panelBorder_MouseDown(object sender, MouseEventArgs e)
        {
            mousePressed = true;
            if (sender.Equals(this.panelBorder))
            {
                mouseDownPos = new Point(panelBorder.Location.X + e.Location.X, panelBorder.Location.Y + e.Location.Y);
            }
            else if (sender.Equals(this.formMessage))
            {
                mouseDownPos = new Point(e.Location.X,  e.Location.Y);

            }
        }

        private void panelBorder_MouseUp(object sender, MouseEventArgs e)
        {
            mousePressed = false;
        }

        private void panelBorder_MouseMove(object sender, MouseEventArgs e)
        {
            if (mousePressed)
            {
                if (e.Button == MouseButtons.Left)
                {
                    this.formMessage.Left = Cursor.Position.X - mouseDownPos.X;
                    this.formMessage.Top = Cursor.Position.Y - mouseDownPos.Y;
                }
            }
        }


А с использованием WPF не могу разобраться, что к чему, пробовал так, форма уезжает за экран вправо/вниз:
Код

        private void Window_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                this.Left = oldPointMousePosition.X;
                this.Top = oldPointMousePosition.Y;
                oldPointMousePosition = this.PointToScreen(e.GetPosition(this));
            }
        }

        private void border1_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            oldPointMousePosition = this.PointToScreen(e.GetPosition(this));
        }


Это сообщение отредактировал(а) CasperSC - 31.3.2010, 15:42
PM MAIL   Вверх
CasperSC
Дата 1.4.2010, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 27.11.2009

Репутация: 1
Всего: 1



Многие новички в WPF наверное будут в шоке, я сам в шоке )) Это делается так:
Код

        private void border1_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            this.DragMove();
        }


И всё!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0396 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.