1 / 1 / 1
Регистрация: 03.03.2011
Сообщений: 44
1

Рисование фигур во время работы программы

23.09.2013, 02:28. Показов 5457. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Переделываю программу с Windows Forms на WPF, многое пока не ясно. На форме должно быть множество разных фигур (например, Ellipse), которые можно добавлять, перемещать и удалять. Перемещать, в смысле, не мышкой, а по определённому алгоритму. Принцип рисования на WinForm мне понятен, а вот в WPF никак не могу въехать. Сейчас пытаюсь разобраться, как написать простейшую программу, чтобы при нажатии одной кнопки появлялась новая фигура, а другая кнопка перемещает все фигуры на несколько пикселей. Можете объяснить, как это сделать? Или скинуть ссылку на что-то похожее.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2013, 02:28
Ответы с готовыми решениями:

Рисование фигур в ходе работы программы
Как сделать, чтобы в процессе работы программы с небольшой паузой рисовались эллипсы? ...

Как вывести время работы программы ПОСЛЕ завершения работы progressBar?
У меня почему-то сначала выводится время в MessageBox, а затем уже завершает свою работу...

Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) задаются во время работы программы
1. Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время...

Время работы программы
Необходимо сравнить время сортировки прямым включением и "Шеллом" на массивах большого объёма....

12
Эксперт Python
4640 / 2056 / 363
Регистрация: 17.03.2012
Сообщений: 10,139
Записей в блоге: 6
23.09.2013, 12:30 2
На форме должен быть контейнер (Например, Canvas).
Создаёте Ellipse, добавляете его в контейнер:
C#
1
2
3
var ellipse = new Ellipse();
// параметры не забыть
mycanvas.Children.Add(ellipse);
0
1 / 1 / 1
Регистрация: 03.03.2011
Сообщений: 44
23.09.2013, 18:28  [ТС] 3
Ок, а откуда взялось mycanvas? Я так понимаю, это надо не через XAML создавать?
0
Эксперт Python
4640 / 2056 / 363
Регистрация: 17.03.2012
Сообщений: 10,139
Записей в блоге: 6
23.09.2013, 19:19 4
Это по обстоятельствам. Поскольку он один, можно через xaml.
0
1 / 1 / 1
Регистрация: 03.03.2011
Сообщений: 44
23.09.2013, 21:15  [ТС] 5
А через XAML как? Вот у меня есть один Canvas в окне, как ему присвоить имя myCanvas?
0
Эксперт Python
4640 / 2056 / 363
Регистрация: 17.03.2012
Сообщений: 10,139
Записей в блоге: 6
24.09.2013, 07:07 6
XML
1
<Canvas Name="mycanvas">
1
1 / 1 / 1
Регистрация: 03.03.2011
Сообщений: 44
26.09.2013, 02:26  [ТС] 7
Ещё вопрос по поводу рисования в несколько слоёв. На WinForm я делал это с помощью нескольких Bitmap, а каким образом можно сделать такое на WPF?
0
Эксперт Python
4640 / 2056 / 363
Регистрация: 17.03.2012
Сообщений: 10,139
Записей в блоге: 6
26.09.2013, 07:06 8
Если в первом приближении - каждый объект можно рассматривать, как отдельный слой.
Вообще есть свойство ZOrder, если надо поменять порядок объектов.
0
1 / 1 / 1
Регистрация: 03.03.2011
Сообщений: 44
08.12.2013, 20:04  [ТС] 9
Так я тогда и не разобрался с этим, а сейчас опять понадобилось. Пишу прогу, которая рисует бинарное дерево. Уже продумал все алгоритмы, осталось только понять, как рисовать на WPF. Вот например: в каком-то своём классе создаю Rectangle. Как его поместить на myCanvas в MainWindow?? myCanvas он же, вроде бы, приватный... Короче, я хочу понять, как должна выглядеть общая структура программы. На WinForm делать не хотелось бы.
0
Эксперт Python
4640 / 2056 / 363
Регистрация: 17.03.2012
Сообщений: 10,139
Записей в блоге: 6
08.12.2013, 20:40 10
Долго объяснять придётся.
Советую вам почитать любую книжку по WPF.

А по поводу "поместить" - сделайте метод в вашей форме, делов-то. Хотя лучше всего, конечно, грамотно сделать модель MVC, но это совсем долго объяснять придется.
0
1 / 1 / 1
Регистрация: 03.03.2011
Сообщений: 44
08.12.2013, 21:23  [ТС] 11
Ладно, пока сделаю метод в форме.

C#
1
2
3
4
5
6
7
8
9
public void DrawRect()
        {
            myRect = new System.Windows.Shapes.Rectangle();
            myRect.Stroke = System.Windows.Media.Brushes.Black;
            myRect.Fill = System.Windows.Media.Brushes.SkyBlue;
            myRect.Height = 50;
            myRect.Width = 50;
            myCanvas.Children.Add(myRect);
        }
Теперь такой вопрос: как поменять положение myRect на myCanvas?
0
369 / 341 / 108
Регистрация: 12.02.2013
Сообщений: 653
09.12.2013, 22:48 12
Цитата Сообщение от San-ch Посмотреть сообщение
как поменять положение myRect на myCanvas?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
 
            ellipse.Width = 20;
            ellipse.Height = 20;
            ellipse.Fill = Brushes.Black;
 
            myCanvas.Children.Add(ellipse);
        }
        Ellipse ellipse = new Ellipse();
 
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            Canvas.SetLeft(ellipse, 50);
            Canvas.SetTop(ellipse, 70);
        }
    }
0
burning1ife
1465 / 1286 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
10.12.2013, 00:29 13
http://www.codeproject.com/Art... ol-for-WPF
вообще ваш функционал укладывается в видоизмененный treeview, это самый лучший вариант:
http://www.codeproject.com/Art... out-in-WPF
0
10.12.2013, 00:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2013, 00:29
Помогаю со студенческими работами здесь

Время работы программы
Имеется задача на CodeForces. С идеей ее решения проблем не было. 1)Вот рабочая версия,...

Время работы программы на Си
Работая на Lunux, время выполнения программы можно провериться с помощь комманды time т.е. вызвать...

Время работы программы
Здравтвуйте! Написал библиотеку алгоритмов сортировки методами: пузырьком и выбором. Скажите как...

Время работы программы
Хочу вывести в label время работы программы с момента запуска. Сначала попробовал просто вывести...

Время работы программы
Доброго времени суток, Господа! передломной стала здача отмерить время выполнения работы функции...

Время работы программы
Здравствуйте, подскажите пожалуйста как вычислить время работы программы? Думал определять...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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