Форум программистов, компьютерный форум, киберфорум
Наши страницы

C#: WPF, UWP и Silverlight

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
ArhangelSM
13 / 13 / 1
Регистрация: 04.10.2010
Сообщений: 573
#1

.NET 4.x Как правильно создать динамический прямоугольник - C# WPF

22.03.2012, 08:46. Просмотров 1155. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос .NET 4.x Как правильно создать динамический прямоугольник (C# WPF):

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

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

.NET 4.x (MVVM Light) Как правильно создать новое окно? - C# WPF
Я делаю так: using System; using System.Diagnostics.CodeAnalysis; using System.IO; using System.Net; using...

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

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

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

9
Nukutu
176 / 102 / 2
Регистрация: 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
13 / 13 / 1
Регистрация: 04.10.2010
Сообщений: 573
22.03.2012, 12:25  [ТС] #3
и последний вопрос, как задать координаторы расположения на гриде?
0
Nukutu
176 / 102 / 2
Регистрация: 22.03.2010
Сообщений: 456
22.03.2012, 12:54 #4
Цитата Сообщение от ArhangelSM Посмотреть сообщение
и последний вопрос, как задать координаторы расположения на гриде?
C#
1
rectangle.Margin = new Thickness(200, 200, 0, 0);
1
ArhangelSM
13 / 13 / 1
Регистрация: 04.10.2010
Сообщений: 573
22.03.2012, 13:00  [ТС] #5
спасибо
0
Nukutu
176 / 102 / 2
Регистрация: 22.03.2010
Сообщений: 456
22.03.2012, 13:10 #6
Цитата Сообщение от ArhangelSM Посмотреть сообщение
спасибо
Подсказка. Если в следующий раз понадобится другой динамический контрол и в другом контейнере, просто создай в XAML и посмотри атрибуты.
0
ArhangelSM
13 / 13 / 1
Регистрация: 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 / 2
Регистрация: 22.03.2010
Сообщений: 456
23.03.2012, 09:47 #8
Цитата Сообщение от ArhangelSM Посмотреть сообщение
подскажите как сделать очистку грида с исключением что бы текст боксы не удалялись и кнопка
Другими словами, удалить все Rectangle.
Перебором всех Rectangle:
C#
1
this.grid1.Children.Remove(rect1);
1
ArhangelSM
13 / 13 / 1
Регистрация: 04.10.2010
Сообщений: 573
23.03.2012, 10:44  [ТС] #9
да но проблема вот в чем при нажатии показать просто должны обновиться ректанглы а не стереться все как в 1м варианте а если поставить стирания ректанглов в начале то ошибка типа они же динамически еще не созданы ка тогда быть?
0
Nukutu
176 / 102 / 2
Регистрация: 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
Привет! Вот еще темы с ответами:

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

Как правильно создать динамический массив структур - C (СИ)
Привет всем! Мне нужна помощь по C . У меня есть такая структура : typedef struct cell cell; struct cell { short type; ...

Как правильно создать динамический массив из функции - C++
Вот так ругается компилятор: int** i_matrix; f(i_matrix,N, M); ............................................. void f(int**...

Как правильно создать динамический массив в классах (с использованием инкапсуляции , конструкторов , наследования ) - Delphi
Народ , скажите пожалуйста . Как правильно создать динамический массив в классах (с использованием инкапсуляции , конструкторов ,...


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

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

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