2010-07-31 6 views
7

Ich wollte eine erstellen, wie die von Visual Studio 2010 für meine Desktop-Anwendung (zögern Sie nicht, eine beliebige Version von C#/VB.NET/CLR verwenden).Erstellen Sie einen Visual Studio 2010-ähnlichen Splash-Screen

Visual Studio 2010 splash screen http://blogs.msdn.com/blogfiles/visualstudio/WindowsLiveWriter/BehindtheScenesSplashScreen_CC39/image_4.png

Gemäß dem Visual Studio-Blogs wurde der Splash-Screen nicht mit WPF entwickelt, da es den CLR und WPF-Bibliotheken eine erhebliche Verzögerung laden beinhalten würde Laden in der Anwendung verursacht. Daher wurden sie aus Gründen der Leistung auf C++ und Win32 zurückgesetzt.

Gibt es eine praktikable Option für Windows Forms oder WPF-Entwickler, um das gleiche Branding zu nutzen? Die Idee ist, ähnlich reiches Branding in einem Begrüßungsbildschirm zu haben, ohne die Leistung und die Startzeit zu verlieren.

Die Verwendung von PNGs und Transparenzeffekten hilft nicht bei Windows Forms (ein bekanntes Problem, und ich habe verwandte Fragen auf dieser Website dafür gelesen). Nur um zu betonen: Es ist ein Begrüßungsbildschirm, so dass die Startzeit nicht beeinträchtigt werden kann.

+0

Sie Ihre eigene Frage beantwortet: „Verwenden von WPF einen erheblichen Verzögerung führen würde, während die CLR und WPF-Bibliotheken laden ". WinForms benötigt die Bibliotheken CLR und WinForms, also kann es nicht viel besser sein und ist wahrscheinlich schlechter. –

+0

CLR + WinForms ist immer noch schneller als CLR + WPF und wir alle kennen die möglichen Gründe. Ich habe mich nur gefragt, ob ein Trick mir Leistung und reiches Branding geben würde, ohne für Win32 APIs zu gehen. – Vaibhav

+0

Ich für einen Hass-Splash-Screens. Machen Sie Ihre Anwendung schneller. –

Antwort

4
+0

Vielen Dank für die Ressourcen. Nur ein Anliegen: Ich verstehe Win32 APIs sind der Ausweg für diese Szenarien, aber als meine erste Präferenz, wollte sie vermeiden. Trotzdem sicherlich nützlich. – Vaibhav

+5

vermeiden = keine Chance verpassen, etwas Neues zu lernen – thelost

+0

Akzeptieren Sie Ihre Definition von "Vermeiden" vollständig. War in VB6-Entwicklung vor .NET und hat daher Abstiegsbits von Win32-API-Code geschrieben. Vermeiden war nicht zum Überspringen, um die Win32-API zu lernen, sondern um zu versuchen, eine sauberere Methode zu finden (wenn man so will). – Vaibhav

0

Ich musste etwas ähnliches mit einem Patcher für eine massively multiplayer online game (MMO) tun, und wir mögen schöne Splash-Screens in Spielen. Ich habe eine benutzerdefinierte ONLOAD Ereignis (statt OnShown oder Load-Ereignis, das sowohl ein paar Unannehmlichkeiten in diesem Fall vorhanden) und meinen Code setzen für dort die hübsche Bild angezeigt wird:

protected override void OnLoad(EventArgs args) 
{ 
    base.OnLoad(args); 
    Application.Idle += new EventHandler(OnLoaded); 
} 

private void OnLoaded(object sender, 
         EventArgs args) 
{ 
    Application.Idle -= new EventHandler(OnLoaded); 

    // TODO: Add relevant code here 
} 

Wie für das Bild, sicherlich ist es ein Möglichkeit, PNG-Dateien mit nativem Verhalten anzuzeigen (für partielle Transparenz wie im Begrüßungsbildschirm von Visual Studio).

4

Die Leute, die es hat tatsächlich einen Beitrag über sie schrieb, Behind the Scenes: The Splash Screen (2009-11-10) ...

+0

Ja, ich hatte den Post gelesen und das ist der Grund, warum ich "Wie in den Blogs von Visual Studio" erwähnt habe. Danke für das Zeigen der URI (ich hätte das früher tun sollen)! – Vaibhav

+0

Oh ha. Ich sollte Fragen gründlicher lesen. Entschuldigung. – Bill

Verwandte Themen