Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.01.2011
Сообщений: 26

Динамическое соднание элементов

05.05.2011, 14:29. Показов 1303. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем!
Сегодня первый день как сел изучать Silverlight. В оющем вопрос такой
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
public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            Loaded += new RoutedEventHandler(Page_Loaded);
        }
 
        private bool isElipseMouseCapture = false;
        private Point clickPosition;
        private double newEllipsePosition = 100.0;
        Ellipse myElipse;
 
        void Page_Loaded(object sender, RoutedEventArgs e)
        {
            button1.Click+=new RoutedEventHandler(button1_Click);
            ellipse1.MouseLeftButtonUp+=new MouseButtonEventHandler(ellipse1_MouseLeftButtonUp);
            ellipse1.MouseLeftButtonDown+=new MouseButtonEventHandler(ellipse1_MouseLeftButtonDown);
            ellipse1.MouseMove+=new MouseEventHandler(ellipse1_MouseMove);
        }
 
 
 
        private void ellipse1_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            this.ellipse1.ReleaseMouseCapture();
            isElipseMouseCapture = false;
        }
 
        private void ellipse1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            clickPosition = e.GetPosition(sender as UIElement);
            this.ellipse1.CaptureMouse();
            isElipseMouseCapture = true;
        }
 
        private void ellipse1_MouseMove(object sender, MouseEventArgs e)
        {
            if (isElipseMouseCapture)
            {
                this.ElipseTransleteTransform.X = e.GetPosition(this).X - this.ellipse1.Width / 2;
                this.ElipseTransleteTransform.Y = e.GetPosition(this).Y - this.ellipse1.Height / 2;
            }
        }
 
        private void button1_Click(object sender, RoutedEventArgs e)
        {
           
            myElipse = new Ellipse();
            myElipse.SetValue(Canvas.LeftProperty, 10.0);
            myElipse.SetValue(Canvas.TopProperty, this.newEllipsePosition);
            this.newEllipsePosition += 150.0;
            myElipse.Width = 50;
            myElipse.Height = 50;
            myElipse.Stroke = new SolidColorBrush(Colors.Black);
            myElipse.StrokeThickness = 1;
            myElipse.Fill = new SolidColorBrush(Colors.Red);
            myElipse.MouseLeftButtonDown += new MouseButtonEventHandler(ellipse1_MouseLeftButtonDown);
            myElipse.MouseLeftButtonUp += new MouseButtonEventHandler(ellipse1_MouseLeftButtonUp);
            myElipse.MouseMove += new MouseEventHandler(ellipse1_MouseMove);
            canvas1.Children.Add(myElipse);
        }
    }
На форме при загрузке имеется эллипс и кнопка. Эллипс могу перемещать по форме.
По нажатию на кнопку добавляются новые эллипсы.
Так вот как сделать что бы и их я мог перетаскивать, а то при попытке их переместить я все равно двигаю первый эллипс который был уже после загрузки.
Я понимаю что на этих событиях щас висит мой первый эллипс. А как вот туда загнать эменно тот на который я нажал!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2011, 14:29
Ответы с готовыми решениями:

Динамическое создание элементов
Здравствуйте. Пишу приложение wpf с паттерном mvvm. Нужно динамически создавать элементы по нажатию кнопки. Нашёл вот такой пример, но тут...

Динамическое изменение положения элементов
Вот вопрос. есть 2(или больше) элемента воспроизводяших видео. Как динамически расположить их на форме так(в зависимости от ширины окна)...

Динамическое создание элементов и их перетаскивание
Всем привет! Подскажите плз, в какую сторону копать чтоб сделать вот такое приложение: 1. Пользователь может добавлять/удалять...

3
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
05.05.2011, 15:05
здесь объявляй так:
C#
1
2
3
4
5
 
        private void button1_Click(object sender, RoutedEventArgs e)
        {
           
            var myElipse = new Ellipse();....
чтобы получить вызвавший эллипс:

C#
1
2
3
4
5
6
7
   private void ellipse1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {          
            var el = sender as Ellipse;
            clickPosition = e.GetPosition(sender as UIElement);
            el.CaptureMouse();
            isElipseMouseCapture = true;
        }
в остальных методах все аналогично
1
0 / 0 / 0
Регистрация: 18.01.2011
Сообщений: 26
05.05.2011, 15:32  [ТС]
Огромное Вам спасибо!!!!!разобрался!!!

Добавлено через 6 минут
А если не сложно, не подскажите как мне сделать кнопку в виде картинки, ни просто как фон натянуть а что б именно картинка???
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
05.05.2011, 16:49
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<Button x:Class="TestWpfApplication.ThreeStateImageButton"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   <Button.Template>
      <ControlTemplate TargetType="{x:Type Button}">
         <Grid>
            <Image Name="Normal" Source="Resources/Normal.png"/>
            <Image Name="Pressed" Source="Resources/Pressed.png" Visibility="Hidden"/>
            <Image Name="Disabled" Source="Resources/Disabled.png" Visibility="Hidden"/>
         </Grid>
         <ControlTemplate.Triggers>
            <Trigger Property="IsPressed" Value="True">
               <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
               <Setter TargetName="Pressed" Property="Visibility" Value="Visible"/>
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
               <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
               <Setter TargetName="Disabled" Property="Visibility" Value="Visible"/>
            </Trigger>
         </ControlTemplate.Triggers>
      </ControlTemplate>
   </Button.Template>
</Button>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2011, 16:49
Помогаю со студенческими работами здесь

Динамическое добавление элементов на панель.
Нужно динамически в цикле добавить определенное количество разных элементов на stackpanel, таких как лейблы, картинки... Желательно с...

MVVM и динамическое добавление элементов wpf
Является ли архитектурно правильным создание динамических элементов wpf при использовании паттерна mvvm? Например, у меня в базе каждый раз...

Динамическое создание элементов Grid и DataGrid
Всем доброго вечера. Требуется помощь. Никак не получается сделать. Задача следующая. Есть набор данных следующего вида: ...

Динамическое создание элементов wpf mvvm
Как динамически создать например кнопку и засунуть её в grid через клас viewmodel

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Вот уже год прошел, как у меня домен в reg.ru ...
Etyuhibosecyu 16.04.2026
И ничего они мне не сделали. Если отвязать карту, никакие услуги они не навяжут. Я бы с радостью продлил еще на два года, чтобы не мучиться с временным доменом и меня уже знали по red-star-soft. com,. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru