Автор дает вам код, но он не комментируется.Это превращает его в головоломку!
Этот код работает так:
- Это
Behavior
с использованием System.Windows.Interactivity
- Поведение привязано в XAML к элементу, который вы хотите взорвать
Explode
перехватывает события мыши, чтобы он знал положение мыши при нажатии - В
StartExplode
сначала вызывается PrepareShards
PrepareShards
создает Popup
, который содержит Grid
, который содержит матрицу Rectangle
элементов - Новый
Popup
выглядит точно так же, как оригинал, но это неболее интерактивный: это фальшивка - «скрывает» оригинальный интерактивный элемент, устанавливая его
Opacity
в ноль - A
Shard
- это обертка вокруг каждого Rectangle
для отслеживания егопозиция и анимация ApplyForce
вызывается для анимации всех прямоугольников
Что делает ApplyForce
?Физика.Это просто формулы.
Так что это всего лишь сочетание фальшивой и умной 2D и 3D графики.Как только вы поймете общую структуру его работы, отдельные шаги станут менее пугающими: просто выясните, как заставить API делать то, что вы хотите.
Например, автору необходимо преобразовать крошечныйобласть сетки (2, 3) исходного элемента интерактивного каркаса в растровое изображение и нарисуйте его на соответствующем прямоугольнике в сетке.После отрисовки, из-за природы графической подсистемы с сохраняемым режимом, вам больше не нужно беспокоиться о ней.
Подобные эффекты нелегко написать, но они также не невозможны, и их может быть много.весело.Вы определенно научитесь многим методам, которые будут вам полезны, когда будете писать другие, менее «бесполезные» приложения!