-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] Integration with UICompositionAnimations #3108
Comments
Thanks for submitting a new feature request! I've automatically added a vote 👍 reaction to help get things started. Other community members can vote to help us prioritize this feature in the future! |
Thanks for all the details @Sergio0694! This sounds like a great start. I did some digging in our current Animations package and found that SurfaceLoader, the Light Extension, Saturation, and Blur effects are the ones that use the Win2D dependency. So it'd be great if for 7.0 (see #3062) we can split those out into the Microsoft.Toolkit.Uwp.UI.Media package to centralize our Win2D needs. In the meantime for if we do a 6.1 release before then, we can just start moving things over in the right spots as appropriate as you've already started doing. 😊 |
I think we've got the smaller more portable items over in 6.1 already, but there's still a bulk of the 'Animation' part to coordinate for 7.0, so I'm going to move this to track that work for that release. |
@Sergio0694 you good with closing this now that we have #3638 to track the overall animation work in more detail? (And everything else was done before in 6.1) |
Sure thing! We can continue in the animations issue 👍 |
Describe the problem this feature would solve
Hi everyone, I'm opening this issue following a conversation with @michael-hawker over at the UWP Community Discord server about integrating my UICompositionAnimations library into the Windows Community Toolkit. I've proceeded to do an initial refactoring of my entirely library to split it into three different, self-contained projects (now referred to as
FluentExtensions
):ScrollViewer
.Now, over time many of my helpers have been added in some equivalent form to the
Windows Community Toolkit
, in particular the animation extensions, which overlap almost entirely with equivalent APIs from theWindows Community Toolkit
. On the other hand, stuff like my pipeline XAML effects are exclusive to my library and are not available in any form with theWindows Community Toolkit
, and I think they'd be a great addition to it that other developers could use as well.Considering this, my idea would be to fully integrate my library into the
Windows Community Toolkit
, following three main principles:After the integration is complete, it should be possible for apps currently using
UICompositionAnimations
(eg. myTube!, Legere, OneLocker, Brainf*ck#, SoundByte, Quarrel) to ditch it entirely, and switch to theWindows Community Toolkit
without loss of functionality.Wherever the
Windows Community Toolkit
offers equivalent APIs, those APIs from theUICompositionAnimations
library should be ditched.If for a given set of equivalent APIs, the
UICompositionAnimations
library offers additional features not directly available from the toolkit, those should be ported over to enrich the API set of theWindows Community Toolkit
, if possible.This would make new useful APIs available for a larger number of developers too, and expand the feature set of the
Windows Community Toolkit
in the process. Also, it would allow all the apps usingUICompositionAnimations
to ditch it and just rely on theWindows Community Toolkit
going forward.The point of this issue is mainly to discuss specific features from
UICompositionAnimations
and how to properly integrate them into this repository, offer suggestions on how to achieve equivalent results only using currently existing APIs from the toolkit, if possible, and to track all the individual PRs needed to port the features fromUICompositionAnimations
to theWindows Community Toolkit
.Describe the solution
I've made a list of all the individual things I'd like to port to the
Windows Community Toolkit
, starting from the simplest things to port. For each item, there's a small description and a link to the related pull request, if existing. Also, for some items, some additional discussion will be needed. Eg. I'll create a draft PR for the brushes item, and we can see there how to better include them in the toolkit. Similarly, I will need some help from people familiar with the toolkit to see how to properly handle the animations part.InsetClip
to clip the rendering coming from inside a givenUIElement
FontIcon
from astring
representing a Segoe MDL2 icon, resulting in much cleaner code (see here)ScrollViewer
class, to easily start an expression animation binding the scrolling to offset of a targetUIElement
Visual.Size
with composition, or the actual element height/width (with dependent animations) if you choose XAML)Thanks in advance to everyone willing to help out, give feedbacks or contribute to the discussion on how to properly do this and organize work on this going forward! 😄
I'll get started on the first PRs in the meantime, looking forward to hearing from you!
The text was updated successfully, but these errors were encountered: