Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
4 / 4 / 2
Регистрация: 20.09.2014
Сообщений: 41
1

Как реализован метод по перетаскиванию уже нарисованного квадрата?

16.07.2015, 00:04. Показов 388. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Учу WPF по книжке макдональда 2010 год,застрял на Visuals 14 раздел
Мне непонятно как реализован метод по перетаскиванию уже нарисованного квадрата.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 else if (cmdSelectMove.IsChecked == true)
            {
                DrawingVisual visual = drawingSurface.GetVisual(pointClicked);
                if (visual != null)
                {
                    // Calculate the top-left corner of the square.
                    // This is done by looking at the current bounds and
                    // removing half the border (pen thickness).
                    // An alternate solution would be to store the top-left
                    // point of every visual in a collection in the 
                    // DrawingCanvas, and provide this point when hit testing.
                    Point topLeftCorner = new Point(
                        visual.ContentBounds.TopLeft.X + drawingPen.Thickness / 2,
                        visual.ContentBounds.TopLeft.Y + drawingPen.Thickness / 2);
                    DrawSquare(visual, topLeftCorner, true);
 
                    clickOffset = topLeftCorner - pointClicked;
                    isDragging = true;
 
                    if (selectedVisual != null && selectedVisual != visual)
                    {
                        // The selection has changed. Clear the previous selection.
                        ClearSelection();
                    }
                    selectedVisual = visual;
                }
            }
В частности обработчик события движения мыши.Мы с помощью DrawSquare(selectedVisual, pointDragged, true); нарисовали квадрат в месте куда перетащили мышь,куда девается старый квадрат?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 private void drawingSurface_MouseMove(object sender, MouseEventArgs e)
        {
            if (isDragging)
            {
                Point pointDragged = e.GetPosition(drawingSurface) + clickOffset;
                DrawSquare(selectedVisual, pointDragged, true);
            }
            else if (isMultiSelecting)
            {
                Point pointDragged = e.GetPosition(drawingSurface);
                DrawSelectionSquare(selectionSquareTopLeft, pointDragged);
            }
            
        }
Мой код Visualexample.rar.Код Макдональда Drawing.rar.У меня почему-то рисуется новый квадрат и он же перетаскивается мышью.
Вложения
Тип файла: rar Drawing.rar (327.8 Кб, 2 просмотров)
Тип файла: rar Visualexample.rar (65.3 Кб, 1 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2015, 00:04
Ответы с готовыми решениями:

Метод обнаружения нарисованного квадрата
Доброго времени суток! Есть код, он обнаруживает, нарисовал ли круг. Пожалуйста, помогите допилить...

Как рисовать линию с помощью мыши, не стирая уже нарисованного
public partial class Form1 : Form { Int32 x_begin = new Int32(); Int32...

GDI+. Как создать возможность выделения уже нарисованного примитива, и его удаления/изменения?
Доброго времени суток! Короче есть приложение использующее GDI+. В нем пользователь рисует...

Передвижение нарисованного квадрата
Нарисовал квадрат через Rectangle и нужно организовать передвижение этой фигуры

0
16.07.2015, 00:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2015, 00:04
Помогаю со студенческими работами здесь

Перемещение нарисованного квадрата курсором
Есть вот такой код, рисующий на форме квадрат: from tkinter import * root = Tk() canvas =...

Выполнить действия при нажатии в область нарисованного квадрата
Мне нужно сделать так, чтобы при нажатии внутри квадрата r1 (нарисованного на форме), происходила...

Как реализован метод DrawLine и другие, описанные в классе Graphics
На msdn не удосужились описать способ работы методов, там всего-лишь приведён пример...

Движение линии поверх уже нарисованного графика
Подскажите, пжлст с помощью чего можно сделать так чтоб не затирался график, который нарисован на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru