Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
ArhangelSM
14 / 14 / 3
Регистрация: 04.10.2010
Сообщений: 573
#1

Как правильно создать динамический прямоугольник

22.03.2012, 08:46. Просмотров 1190. Ответов 9
Метки нет (Все метки)

Подскажите как правильно создать динамический ректангл

C#
1
2
3
4
5
6
7
        private void CreateRect()
        {
            Rectangle rect1 = new Rectangle( );
            rect1.Height = 10;
            rect1.Width = 5;
            grid1.
        }
как в грид1 добавить ректангл и добавить в него цвет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2012, 08:46
Ответы с готовыми решениями:

Как создать динамический массив string
Как сделать? А то у stringp приходится менять размер, чтобы добавить еще 1...

Как правильно создать Скринсейвер
Как правильно создать Скринсейвер на C# программка уже есть но как она должна...

(MVVM Light) Как правильно создать новое окно?
Я делаю так: using System; using System.Diagnostics.CodeAnalysis; using...

Как правильно создать class (и загрузить в него 1 функцию)?
Допустим у меня есть несколько одинаковых действий, которые может выполнять...

Возможно ли создать внутри Button еще какой-нибудь объект ? Линию или Прямоугольник,например
Всем доброго времени суток! Есть набор элементов - 1000 кнопок.Можно ли...

9
Nukutu
176 / 102 / 12
Регистрация: 22.03.2010
Сообщений: 456
22.03.2012, 11:22 #2
Цитата Сообщение от ArhangelSM Посмотреть сообщение
Подскажите как правильно создать динамический ректангл
Не динамический, а динамически, т.е. по ходу работы программы.
Вот так:
C#
1
2
rectangle.Fill = Brushes.Red;
this.grid1.Children.Add(rectangle);
1
ArhangelSM
14 / 14 / 3
Регистрация: 04.10.2010
Сообщений: 573
22.03.2012, 12:25  [ТС] #3
и последний вопрос, как задать координаторы расположения на гриде?
0
Nukutu
176 / 102 / 12
Регистрация: 22.03.2010
Сообщений: 456
22.03.2012, 12:54 #4
Цитата Сообщение от ArhangelSM Посмотреть сообщение
и последний вопрос, как задать координаторы расположения на гриде?
C#
1
rectangle.Margin = new Thickness(200, 200, 0, 0);
1
ArhangelSM
14 / 14 / 3
Регистрация: 04.10.2010
Сообщений: 573
22.03.2012, 13:00  [ТС] #5
спасибо
0
Nukutu
176 / 102 / 12
Регистрация: 22.03.2010
Сообщений: 456
22.03.2012, 13:10 #6
Цитата Сообщение от ArhangelSM Посмотреть сообщение
спасибо
Подсказка. Если в следующий раз понадобится другой динамический контрол и в другом контейнере, просто создай в XAML и посмотри атрибуты.
0
ArhangelSM
14 / 14 / 3
Регистрация: 04.10.2010
Сообщений: 573
23.03.2012, 08:06  [ТС] #7
подскажите как сделать очистку грида с исключением что бы текст боксы не удалялись и кнопка

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
 public MainWindow()
        {
            InitializeComponent();
            Closing += (s, e) => ViewModelLocator.Cleanup();
            CreatePie();
 
            CreateRect();
            
        }
 private void btnstart_Click(object sender, RoutedEventArgs e)
        {
            CreateRect();
        }
 
        private void CreateRect()
        {
 
            this.grid1.Children.Clear();
 
            Button btnstart = new Button();
            btnstart.Margin = new Thickness(694, 339.178, -10, 0);
            btnstart.Content = "Показать";
            btnstart.Height = 23;
            btnstart.Width = 75;
            btnstart.Click += new RoutedEventHandler(btnstart_Click);
            this.grid1.Children.Add(btnstart);
 
            TextBox textBoxRed = new TextBox();
            textBoxRed.Height = 23;
            textBoxRed.Width = 120;
            textBoxRed.Text = "250";
            textBoxRed.Margin = new Thickness(45, 339, -10, 0);
            this.grid1.Children.Add(textBoxRed);
 
            TextBox textBoxBlue = new TextBox();
            textBoxBlue.Height = 23;
            textBoxBlue.Width = 120;
            textBoxBlue.Text = "250";
            textBoxBlue.Margin = new Thickness(222, 338.822, -10, 0);
            this.grid1.Children.Add(textBoxBlue);
 
            TextBox textBoxGreen = new TextBox();
            textBoxGreen.Height = 23;
            textBoxGreen.Width = 120;
            textBoxGreen.Text = "250";
            textBoxGreen.Margin = new Thickness(400, 339.178, -10, 0);
            this.grid1.Children.Add(textBoxGreen);
 
            TextBox textBoxYellov = new TextBox();
            textBoxYellov.Height = 23;
            textBoxYellov.Width = 120;
            textBoxYellov.Text = "250";
            textBoxYellov.Margin = new Thickness(0, 339.178, 116, 0);
            this.grid1.Children.Add(textBoxYellov);
 
 
            Rectangle rect1 = new Rectangle();
            rect1.Height = Convert.ToDouble(textBoxRed.Text);
            rect1.Width = 150;
            rect1.Fill = Brushes.Red;
            rect1.Margin = new Thickness(-500, 0, 100, 0);
            this.grid1.Children.Add(rect1);
 
            Rectangle rect2 = new Rectangle();
            rect2.Height = Convert.ToDouble(textBoxBlue.Text);
            rect2.Width = 150;
            rect2.Fill = Brushes.Blue;
            rect2.Margin = new Thickness(-150, 0, 100, 0);
            this.grid1.Children.Add(rect2);
 
            Rectangle rect3 = new Rectangle();
            rect3.Height = Convert.ToDouble(textBoxGreen.Text);
            rect3.Width = 150;
            rect3.Fill = Brushes.Green;
            rect3.Margin = new Thickness(200, 0, 100, 0);
            this.grid1.Children.Add(rect3);
 
            Rectangle rect4 = new Rectangle();
            rect4.Height = Convert.ToDouble(textBoxYellov.Text);
            rect4.Width = 150;
            rect4.Fill = Brushes.Yellow;
            rect4.Margin = new Thickness(550, 0, 100, 0);
            this.grid1.Children.Add(rect4);
 
        }
0
Nukutu
176 / 102 / 12
Регистрация: 22.03.2010
Сообщений: 456
23.03.2012, 09:47 #8
Цитата Сообщение от ArhangelSM Посмотреть сообщение
подскажите как сделать очистку грида с исключением что бы текст боксы не удалялись и кнопка
Другими словами, удалить все Rectangle.
Перебором всех Rectangle:
C#
1
this.grid1.Children.Remove(rect1);
1
ArhangelSM
14 / 14 / 3
Регистрация: 04.10.2010
Сообщений: 573
23.03.2012, 10:44  [ТС] #9
да но проблема вот в чем при нажатии показать просто должны обновиться ректанглы а не стереться все как в 1м варианте а если поставить стирания ректанглов в начале то ошибка типа они же динамически еще не созданы ка тогда быть?
0
Nukutu
176 / 102 / 12
Регистрация: 22.03.2010
Сообщений: 456
23.03.2012, 12:12 #10
Цитата Сообщение от ArhangelSM Посмотреть сообщение
да но проблема вот в чем при нажатии показать просто должны обновиться ректанглы а не стереться все как в 1м варианте а если поставить стирания ректанглов в начале то ошибка типа они же динамически еще не созданы ка тогда быть?
У меня логика построения кода занимает 80 процентов времени разработки.
Грубо говоря это техзадание, которое пишется перед началом написания кода. Правда, редко кто это делает, когда сам и дизайнер и девелопер.
Вы подумайте вот над этой логикой, а потом пишите.
Отвечая на конкретный вопрос, я бы сделал проверку на null. Если не null, то удаляем. И ничего ругаться не будет.
0
23.03.2012, 12:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2012, 12:12

Прямоугольник как при выборе элементов в проводнике windows
Как сделать на форме прямоугольник, аналогичный прямоугольнику, когда мышкой...

Как убрать черный прямоугольник, который отображается при запуске WPF под студией?
Добрый день! Чтобы не плодить темы, решил два вопроса сразу задать. Картинка...

Как правильно создать динамический массив структур
Привет всем! Мне нужна помощь по C . У меня есть такая структура : typedef...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru