Мне нравится новая анимация Androids, где вы касаетесь элемента управления (listviewitem, кнопка и т.д. и т.д.), и он делает аккуратную анимацию следующим образом:
Мне интересно, как это можно реализовать в глобальном масштабе для всех "настраиваемых" элементов управления в WPF.
Мне нужна помощь в том, как круги должны создаваться на элементе управления. Единственное, о чем я думал, это создать собственные пользовательские элементы управления для каждого другого элемента управления (кнопки, радиокнопки и т.д.), Где у меня есть родительский элемент для эллипса, а также сам исходный элемент управления.
<UserControl>
<Grid MouseLeftButtonDown="handler">
<Button/> <--- this would be the button which you normally would place
</Grid >
</UserControl>
И в handler-method
создайте эллипс в точке e.GetPosition(handler)
, используя свойства margin, а затем оставьте его. Это решение будет работать. Но было бы хлопот делать это для каждого контроля, на который я хотел бы повлиять. В основном что-то вроде этого:
void handler(object sender, MouseButtonEventArgs e)
{
Grid parent = (Grid)sender;
Ellipse ellipse = new Ellipse();
ellipse.Height = 10; // would be animated
ellipse.Width = 10; // would be animated
Point p = e.GetPosition(parent);
ellipse.Margin = new Thickness(p.X, p.Y, 0, 0);
parent.Children.Add(ellipse);
// do the animation parts to later remove the ellipse
}
Есть ли более чистый, более расширяемый способ размещения эллипсов на моих элементах управления, отличных от того, как я ранее демонстрировал, поскольку не все элементы управления поддерживают детей?