microsoft / microsoft-ui-xaml

Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications
MIT License
6.36k stars 678 forks source link

Splash screen not displayed for WinUI Desktop #4055

Open Berkunath opened 3 years ago

Berkunath commented 3 years ago

Splash screen not displayed for WinUI Desktop I have WinUI Desktop application and I would like to display the Splash screen before content of Window loads. But splash screen not displayed even we have Splash screen Images. Currently empty screen displays for 2 to 3 seconds.

Expected behavior Splash Screen should display on start up of the application

Version Info [Microsoft.WinUI 3.0.0-preview3.201113.0]

StephenLPeters commented 3 years ago

I think that Splash screens are a UWP concept. I think that if you want to show one in a win32 app, you'll need to do it yourself. @Austin-Lamb might know more.

marb2000 commented 3 years ago

@StephenLPeters is right. Splash Screens are not implemented yet in WinUI 3 Desktop. You can create a feature proposal :)

jeganraj-m commented 3 years ago

But there is an option to provide Splash screen in desktop projects. image

Does it will be removed in future?

AathifMahir commented 2 years ago

Looking forward for native splash screen support added to WinUI 3, Splash Screen Like UWP does really makes a difference in User Experience

CAKCy commented 2 years ago

Why does it feel that with every new development platform Microsoft comes up with, things are going backwards? No splash screen, no XAML designer, right click text box crashing bug for more than a year, no topmost window etc. etc. What have we done to deserve Microsoft's "punishment"? :/

castorix commented 2 years ago

Looking forward for native splash screen support added to WinUI 3, Splash Screen Like UWP does really makes a difference in User Experience

A Splash Screen is very simple to implement I posted a basic sample with a Layered window in another thread #6942 You can improve it...

michelkommers commented 2 years ago

I will add my 'thoughts' on this, using .Net MUAI with Blazor, splash screen becomes more important than before, because we have a lot of weird 'flashs' when the app is starting, we have some forecolor that flashs, than the white from the html page, than the 'background' of the page when the css loads, and only than we have the loading message inside the blazor... It may make sense in a dev perspective, but looking with the user point of view....., its really bizare.

With a splashscreen that loads all that in background and blazor signal back that everything is ready and the splashscreen fades out would be awesome.

veikkoeeva commented 2 years ago

Second to @michelkommers. For those coming later here from the linked Maui threads, I took a look at example provided by @castorix (thanks!), but at least for me it's not clear how to make use of it in a Maui app. Probably there's a way.

<edit>Maybe possible using https://github.com/dotMorten/WinUIEx/blob/main/docs/concepts/Splashscreen.md </edit>.

kuva kuva

Qws commented 2 years ago

I made a MAUI app, the Android version has a default splashscreen, but when I click on the Windows version, nothing happens for 3-5 whole seconds. There is no feedback of the app loading, sometimes you click again, just to make sure the app is really loading. And sudenly the app pops up out of nowhere.

This really reminds me of the Windows XP user experience. I guess that's what I can expect from Win32 powered application...

But honestly, in modern time, it needs modern user experience. Not the Windows XP and Vista user experience.

Splashscreen should be the default option, not the otherway around... honestly, there is really no reason not to have a splashscreen for apps.

Worst of all, UWP (WinUI2) has build-in splashscreen...... why would WinUI3 not have splashscreen. I feel like WinUI3 is going backwards in time.

Laftek commented 2 years ago

This is important!

AathifMahir commented 2 years ago

Exactly, Splash Screen is Must for WinUI 3 for better user experience and consistency sake, Currently many apps that uses WinUI 3 does implement custom splash screen that causes inconsistency between each different apps since many WinUI 3 Apps Uses Different Design and Different Implementation for Splash Screen.

In my case, on my DotNet Maui App. I developed a custom splash screen to complement the User experience by Using Same UWP Splash Screen Design Language but that differs from Other Implementations, Therefore having a native splash screen is a must on my case

breenbob commented 1 year ago

Same as @Qws I get a black screen for a few seconds when my app is loading.

How does something so fundamental and open for almost 2 years now not even have a priority or milestone assigned yet?

As mentioned there is a UI for setting splash screen resources in Visual Studio that creates assets fine as with UWP, but they simply never show. Same with Maui Splash functionality.

.Net Maui documentation doesn't even list it as a limitation, it just covers how to implement on Android/iOS.

Is this being taken seriously?

Laftek commented 1 year ago

Best part is that Asignee is not even working for microsoft for some time…. Its sad how some fundamental functions are being neglected (also MAUI).

Laftek commented 1 year ago

You are right, all kudos to the team MAUI and ASP.NET but as you mentioned lack of manpower is taking its price. I have big expectations for .NET8 tough! I think it will be gamechanger (kinda).

Reza-Noei commented 1 year ago

Any update on this ??? I don't wanna to re-invent the wheel.

mklemarczyk commented 1 year ago

We have end of 2023 soon, and WinUI does not support well SplashScreen or XAML Designer. Any updates on the subject in this ticket?

gmgallo commented 11 months ago

Maybe the TemplateStudio guys can come to the rescue?

GuidoNeele commented 8 months ago

Any updates? This issue is open for 3 years.

AliShahesmaeili commented 7 months ago

Any updates? This issue is open for 4 years.

GuidoNeele commented 7 months ago

I used this by @castorix as inspiration to add our own splash screen. We are using .NET MAUI on Windows and the startup time is super slow, you really need a splash screen to show the user something is happening.

gmgallo commented 7 months ago

Check WinUIEx @dotMorten has a splash window for WinUI 3 in there and I think he may have something for MAUI.

legistek commented 6 months ago

I guess we'd better keep posting so the bot doesn't close it.

After a full day of trial and error and a ridiculous amount of Win32 interop, I finally managed to make a splash screen that was properly centered, didn't flash white before being displayed, etc.

While I appreciate community efforts such as @dotMorten's, if this isn't part of the framework then I wanted to know how to do it myself. In fact successful community and self-help efforts only underscore how inexplicable it is to omit this from the framework.

The splash screen is literally the first thing our users will see when they launch. (Ever hear that thing about first impressions?) Show me a Microsoft app (other than those built into Windows) that doesn't have a splash screen. For that matter show me a single retail Windows application by anyone that doesn't have a splash screen.

The lack of something this ubiquitous in the main framework is, to me, a sign of a bigger problem.

NeerajGulia commented 6 months ago

After a full day of trial and error and a ridiculous amount of Win32 interop, I finally managed to make a splash screen that was properly centered, didn't flash white before being displayed, etc.

Would you like to share so that other people could also implement it. Thanks in advance!

legistek commented 6 months ago

Oh I figured the one in WinUIEx was as good if not better. I just wanted to learn for myself how to do it from scratch. It's quite a lot of code in different places and not really self-contained. It's basically how I'd have done it 30 years ago, except in C#.

I will say one very tricky part was avoiding the white flash because the moronic default window will WM_PAINT itself white before it draws anything else no matter what you do. So I had to start with a transparent window using https://github.com/cnbluefire/WinUI3TransparentBackground which includes hooking into WndProc to override the moronic default behavior. But again I think WinUIEx is basically doing the same thing so I'd just look at his code and not my fingerpainting as the reference.

jamers99 commented 1 month ago

@marb2000 it's been nearly 5 years. This experience is a significant downgrade from UWP. Is there anything that we can do to get our app up faster in an elegant way?

dotMorten commented 1 month ago

@jamers99 did you look at the new AoT feature? It specifically addresses start up time. On a side note, a splash screen might make your app appear to start up faster (which could be beneficial for percieved performance), but the actual app would only get slower, since it now has to do a splashscreen first.

legistek commented 1 month ago

which could be beneficial for percieved performance

How about beneficial for perceived professionalism? Name me a single major commercial consumer-facing Windows application without a splash screen. There was a time when Microsoft cared about empowering its Windows developer community to make quality professional looking applications. But those days passed long ago.

mklemarczyk commented 1 month ago

@jamers99 did you look at the new AoT feature? It specifically addresses start up time. On a side note, a splash screen might make your app appear to start up faster (which could be beneficial for percieved performance), but the actual app would only get slower, since it now has to do a splashscreen first.

It will get only slower if you do some complex computation for splashscreen. As long I checked out to draw a frame on the screen it takes less than 1/60 of a second. Only extra time is loading the asset that can be optimized and restricted to avoid additional load on the application loading.

If you requite technical knowledge or support you can just ask the community. I can provide some ideas / examples how to approach the splash screen for WinUI 3.