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

Обработчик события

09.02.2021, 18:37. Показов 1784. Ответов 1

Author24 — интернет-сервис помощи студентам
У меня есть пули с анимацией полёта, нужно при попадании в цель увеличить счётчик на 1. Как лучше это сделать? Слышал про триггеры, можно ли как-то их создать программно, без XAML?
Полет пули:
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
 public void startmove(Canvas cnv)
        {
            NameScope.SetNameScope(cnv, new NameScope());
            TranslateTransform animatedTranslateTransform = new TranslateTransform();
            cnv.RegisterName("AnimatedTranslateTransform", animatedTranslateTransform);
            el.RenderTransform = animatedTranslateTransform;
            double k = 0, b = 0;
            k = (end.Y - start.Y) / (end.X - start.X);
            b = end.Y - k * end.X;
            end.X = 800;end.Y = k * 800 + b;
            double dist = Math.Sqrt(Math.Pow(end.Y - start.Y, 2) + Math.Pow(end.X - start.X, 2));
            PathGeometry animationPath = new PathGeometry();
            PathFigure pFigure = new PathFigure();
            pFigure.StartPoint = new Point(start.X-4,start.Y-4);
            LineSegment line = new LineSegment();
            line.Point = end;
            pFigure.Segments.Add(line);
            animationPath.Figures.Add(pFigure);
            animationPath.Freeze();
            DoubleAnimationUsingPath translateXAnimation = new DoubleAnimationUsingPath();
            translateXAnimation.PathGeometry = animationPath;
            translateXAnimation.Duration = TimeSpan.FromSeconds(dist/speed);
            translateXAnimation.Source = PathAnimationSource.X;
            Storyboard.SetTargetName(translateXAnimation, "AnimatedTranslateTransform");
            Storyboard.SetTargetProperty(translateXAnimation, new PropertyPath(TranslateTransform.XProperty));
            DoubleAnimationUsingPath translateYAnimation = new DoubleAnimationUsingPath();
            translateYAnimation.PathGeometry = animationPath;
            translateYAnimation.Duration = TimeSpan.FromSeconds(dist/speed);
            translateYAnimation.Source = PathAnimationSource.Y;
            Storyboard.SetTargetName(translateYAnimation, "AnimatedTranslateTransform");
            Storyboard.SetTargetProperty(translateYAnimation, new PropertyPath(TranslateTransform.YProperty));
            Storyboard pathAnimationStoryboard = new Storyboard();
            //pathAnimationStoryboard.RepeatBehavior = RepeatBehavior.Forever;
            pathAnimationStoryboard.Children.Add(translateXAnimation);
            pathAnimationStoryboard.Children.Add(translateYAnimation);
            pathAnimationStoryboard.Begin(cnv,true);
        }
Миниатюры
Обработчик события  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2021, 18:37
Ответы с готовыми решениями:

Невозможно добавить обработчик события
При попытке создания события Click на кнопке появляется ошибка "Невозможно добавить обработчик...

Обработчик события для ComboBox
C WPF только знакомлюсь. Возник вопрос как правильно написать обработчик события для ComboBox в С#,...

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

DispatcherTimer свой обработчик события
Как сделать свой обработчик события на таймер DispatcherTimer, есть вот такой стандартный вариант с...

1
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
18.02.2021, 00:46 2
Цитата Сообщение от pomogat Посмотреть сообщение
Как лучше это сделать? Слышал про триггеры, можно ли как-то их создать программно, без XAML?
Это и надо делать программно на Шарпе.
В XAML такого не сделаешь.
Рассчитывайте программно траекторию и пересекается ли она с мишенью.
Если да, то инкремируйте счётчик.
0
18.02.2021, 00:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2021, 00:46
Помогаю со студенческими работами здесь

Обработчик события нажатия мыши в ListView
Народ, помогите, не могу понять как получить значение нажатой ячейки?? У меня на форме listView,...

Передача аргумента в обработчик события таймера
Здравствуйте. Вопрос следующий: Есть wpf приложение... При запуске создаю таймер ...

Исправить обработчик события нажатия на клавишу
Всем привет. private void Eventer_Closing(object sender, KeyEventArgs e) { ...

Как добавить обработчик события для кнопки?
Доброго времени суток. Как добавить обработчик событи для кнопки. Стандартно пробовал: два раза...

[WPF] Обработчик события DoubleClick для Rectangle
Как можно реализовать событие DoubleClick для Rectangle?

Как вызвать обработчик события из другого класса?
Допустим есть проект, состоящий из: Window1.xaml Window1.xaml.cs App.xaml App.xaml.cs В...


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

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