Создайте экран-заставку, похожую на Visual Studio 2010 - PullRequest
7 голосов
/ 31 июля 2010

Я намеревался создать заставку , подобную той, что была спроектирована Visual Studio 2010 для моего настольного приложения (не стесняйтесь использовать любую версию C # / VB.NET / CLR).

Заставка Visual Studio 2010 http://blogs.msdn.com/blogfiles/visualstudio/WindowsLiveWriter/BehindtheScenesSplashScreen_CC39/image_4.png

Согласно блогам Visual Studio, заставка не была разработана с использованием WPF , так как для ее загрузки требовались библиотеки CLR и WPF, вызывающиесущественная задержка загрузки приложения.Следовательно, они вернулись к стекам C ++ и Win32 , чтобы сделать то же самое из соображений производительности.

Существует ли возможная опция, доступная для разработчиков Windows Forms или WPF для использования той же маркировки?Идея состоит в том, чтобы иметь похожий богатый брендинг на заставке без потери производительности и времени запуска.

Использование PNG и эффектов прозрачности не помогает в Windows Forms (известная проблема, и я прочитал соответствующие вопросы поэтот сайт для этого).Просто чтобы подчеркнуть: это заставка, поэтому время запуска не может быть скомпрометировано.

Ответы [ 3 ]

4 голосов
/ 31 июля 2010
4 голосов
/ 31 июля 2010

Парни, которые написали это, на самом деле сделали пост об этом, За кулисами: заставка (2009-11-10) ...

0 голосов
/ 31 июля 2010

Мне пришлось сделать нечто похожее с патчером для многопользовательской онлайн-игры (MMO), и нам нравятся красивые заставки в играх.Я сделал пользовательское событие ONLOAD (вместо события OnShown или Load, которое в этом случае представляет несколько неудобств) и поместил свой код для отображения красивой картинки:

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
}

Что касается картинки, то, конечно,есть способ отображения PNG-файлов с использованием собственного поведения (для частичной прозрачности, как на заставке Visual Studio).

...