zhuravlevkk
@zhuravlevkk
Инженер-программист

Как проиграть анимацию StoryBoard при событии Tapped?

Есть приложение UWP, в нем осуществляется навигация по страницам с отображением различного контента.
В отдельном xaml файле отрисовал анимацию нажатия на экран (примерно как на этой картинке, только без руки).
533-5333804_customer-touch-point-icon-hd-png-download.png
Как можно проигрывать эту анимацию, при нажатии на любую область в приложении? По сути это обратная связь на прикосновение.

Есть костыль, вне области экрана помещать отрисованные мной эллипсы и в page resources помещать storyboard после чего при эвенте tapped переносить этот объект в позицию pointer и запускать анимацию. Но делать так не хочется в виду того, что не получится проигрывать несколько экземпляров этой анимации (опять же без костылей). Плюс придется городить этот костыль на каждой из страниц.
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
zhuravlevkk
@zhuravlevkk Автор вопроса
Инженер-программист
Решение такое:
app_namespace - пространство имен приложения
Media - каталог где лежит ассет
Circles - имя файла xaml
circle - имя класса

app_namespace.Media.circles circle = new app_namespace.Media.circles();
circle.Width = 400;
circle.Height = 400;
circle.HorizontalAlignment = HorizontalAlignment.Left;
circle.VerticalAlignment = VerticalAlignment.Top;
circle.Margin = new Thickness(pointerPosition.X - 200, pointerPosition.Y - 200, 0, 0);
Canvas.SetZIndex(circle, 2);
maingrid.Children.Add(circle);
Storyboard sb = circle.Resources["anim_pulse"] as Storyboard;
sb.Begin();
sb.Completed += (s, h) => maingrid.Children.Remove(circle);


maingrid - контейнер, куда помещаем ассет
maingrid.Children.Add(circle);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы