-
Notifications
You must be signed in to change notification settings - Fork 692
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
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
WinUI 3.0 : WPF features that should be in WinRT XAML #719
Comments
|
WinUI Xaml should support XAML 2009 language features https://docs.microsoft.com/en-us/dotnet/framework/xaml-services/xaml-2009-language-features it only implements 2006 |
VisualBrush is a good one. You can achieve mostly the same outcome using windows.ui.composition.redirectvisual but it's less convenient than a brush, and there's no way to "Freeze" it. https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.visualbrush?view=netframework-4.8 |
Support bindings in style setters, it's a very common feature in wpf and there isn't any "easy" workaround. It has an Uservoice request |
A proper Window object would be awesome in WinRT. |
I just gonna quote myself here.
|
(Not Xaml-related) |
@charlesroddie I've covered that in #768 |
Ability to create cursors dynamically at runtime #506 |
|
Isn't that what Win2D does? |
There are differences. Rendering instructions provided by a user to DrawingContext (WPF way of doing custom rendering for elements) become part of the resulting UI scene graph. One of the direct benefits of this is that these retained instructions are automatically used during hit testing by WPF and could result in raising your event handlers (for input events like MouseEnter). |
@VitezslavImrysek -- Nice answer. Your explanation is better than how I was going to explain. Do you (or anyone else) happen to also know the answer to the next part of the puzzle? Meaning do you know if WinUI already has an equivalent to I know WinUI already supports the Windows.UI.Composition API, but so far I haven't seen any example usage of |
Bring back more tuneling event, please! |
There's no way to declare an array in UWP XAML apparently, like x:Array in WPF. |
The ability to convert styled text to a
WinUI has a related feature It sure is frustrating and time-consuming when trying to convert a large WPF app to WinUI and multiple WPF features are missing in WinUI. |
This WPF features issue has turned into a useful reference/list of the missing features. Here's another one for the list: In WPF, you can use |
Here are two from my side: WPF can have 3D models without forcing developers to drag along a 3D game engine. https://docs.microsoft.com/en-us/dotnet/framework/wpf/graphics-multimedia/3-d-graphics-overview WPF can have nice UI effects without forcing .NET developers to write C++ code https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.effects.shadereffect |
@mdtauk I didn't see this issue earlier but it's a really good idea! I've converted an internal document that outlines WPF/UWP differences to markdown and made it public. It was started when porting WPF code over to UWP a few years ago. I also started pulling in some of the comments above -- still more work to do. It should be a good -- and visual -- summary of the differences that others can use. Special thanks to everyone who took the time to comment and write blog posts over the years. https://github.com/robloo/PublicDocs/blob/master/UWPvsWPF.md |
@predavid and @anawishnoff as FYI |
@predavid this should get the wpf tracking label too. |
Another super important topic missing in UWP - Validation: #179 #2476. |
A major barrier I would have to using WinUI right now is the inability to host a child HWND - or even better, bring back the IDCompositionDeviceDesktop::CreateSurfaceFromHwnd as a new function in Windows.UI.Composition to host layered child windows. Bringing CreateSurfaceFromHwnd into the new API would solve so many issues with hosting third-party plug-ins, the "airspace problem", and enable people to integrate old UI technologies seamlessly with composition blends and animation. As an example, every audio application that supports third-party VST controls needs to be able to host HWNDs in some way, as this is the interop mechanism provided by the standard. Right now the closest I could come would be to host WinUI in another framework - the reverse. This has its own issues, particularly around performing layout/arrangement of the WinUI parts with the HWND. It also makes it impossible to use WinUI "around" child HWNDs since you can only have one island today, and even with multiple islands things would get really unwieldy. Please consider CreateSurfaceFromHwnd! (I know it's actually internally used heavily by the Windows shell with Windows.UI.Composition, so this is a request to make it public!) |
I would be happy to see UWP reach feature parity with where Silverlight and the Silverlight SDK left off (not even WPF). LOB friendly controls for things like validation. Feature parity and support for all the controls that were in Silverlight. That includes the XNA like 3D features added near the end. That shouldn't be a big ask given how straightforward porting most of the code should be and where UWP is at today. My request (I hope) is modest because it should be achievable at this stage of where UWP is at. UWP/WinUI needs full LOB support (validation, charting and preferably a bindable 3D markup system). The UWP innovations around the compositor and WinRT API were fantastic as was the security sandbox. Tooling that incorporated a .Net Native compiler were also huge. As was the whole multi-device deployment magic through the Store. That last mile doesn't really seem so far away unless you start to introduce another reboot via WinUI 3.x. |
Lastly, I did notice how easy it is to go from UWP to WinUI where things work. I doubt WPF folks will find the transition that easy. Wouldn't it have been easier to add a desktop capability (no sandbox) to UWP and port the existing WPF API over to UWP than the path being taken now? WinUI 3.x on day one can't be missing things like the map control. The current feature set of UWP should be seen as essential and just the starting point for the future of WinUI. If things are missing on day one WinUI will be a bust. |
Gosh, ample of splendid ideas aggregated here!
|
I am trying to draw Path and PathGeometry in WinUI, but it will not work (nothing shows). In WPF it works perfectly |
Yeah and two years later not much has changed. Its hard to take WinUI serious. |
@oliverw wrote:
I think it's difficult to get competent software engineers to work on WinUI because, for example, the first thing they will say is: |
@verelpode Because after Longhorn WinDev decided to redo .NET in COM, WinRT is basically the return of Ext-VOS ideas as COM Runtime. It wasn't that bad with .NET Native and C++/CX, the pain point was whoever decided it was fine to throw them away without feature parity. So now instead of letting the .NET Native runtime handle COM, you get to mess around with CsWinRT and manually export files. Likewise instead of having a .NET like experience with C++/CX, something that C++ Builder has done for 30 years, you get to manually edit IDL files without VS tooling support, just like back in the ATL days, 23 years ago. |
Sinofsky, to keep the evil .NET hordes threatening his kingdom at bay? 😁 |
He was long gone when C++/WinRT and WinUI 3.0 took place. |
As an "Ahead-of-Time" compiler (meaning a normal compiler), I found the concept of .NET Native comprehensible and sensible. It made sense to stop overusing JIT, considering that JIT is only justifiable in rare cases, such as unusual special apps that truly need runtime code generation.
And now there is "Native AOT" but it is still limited to "console type applications" and has no built-in COM. So yes one does get the feeling "two steps forward, one step backward, one step repeated, three steps cancelled, rinse and repeat".
Yes unfortunately I've seen several brand-new "modern" projects that were started in recent years yet gave me awful flashbacks to the pain of programming in the 1990's. To convince me or someone like me to work on WinUI 3, it would be necessary to pay me a fortune. Then the employer would ask, "Why do you deserve to be paid a fortune to work on WinUI?" Even if the employer agreed to pay me the fortune, the project would still be a failure because one of my bosses would inevitably place untenable conditions on me or the project -- one or more conditions that make the project practically impossible to succeed. The biggest problem is not technical, but rather the terrible people-politics that ruin everything. |
There're a lot of stuff that meant to be here but in fact not. Grid with shared size, implicit DataTemplate, Binding in style setters. |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
I remember since Windows 8 and the introduction of WinRT - many times people saying they couldn't make a control, or couldn't achieve X Y Z - because something they took for granted in WPF didn't exist in the newer WinRT version of XAML.
With WinUI 3.0 and the convergence of WPF and UWP as open source libraries...
What should be added to WinRT XAML that exists in WPF, and why?
The text was updated successfully, but these errors were encountered: