创建类似 Visual Studio 2010 的启动屏幕

发布于 2024-09-12 10:50:01 字数 986 浏览 6 评论 0原文

我打算为我的桌面应用程序创建一个启动屏幕,就像 Visual Studio 2010 所展示的那样(随意使用任何版本的 C#/VB.NET/CLR)。

Visual Studio 2010启动画面
(来源:msdn.com

根据 Visual Studio 博客,启动屏幕不是使用 WPF 开发的,因为它会涉及 CLR 和 WPF 库的加载,导致应用程序加载出现严重延迟。因此,出于性能原因,他们恢复到 C++ 和 Win32 堆栈来执行相同的操作。

Windows 窗体或 WPF 开发人员是否有可行的选择来利用相同的品牌?我们的想法是在启动屏幕中拥有类似的丰富品牌,而不损失性能和启动时间。

使用 PNG 和透明效果对 Windows 窗体没有帮助(这是一个已知问题,我已阅读此网站上的相关问题)。只是强调一下:它是一个启动屏幕,因此启动时间不能受到影响。

I was intending to create a splash screen like the one sported by Visual Studio 2010 for my desktop application (feel free to use any version of C#/VB.NET/CLR).

Visual Studio 2010 splash screen
(source: msdn.com)

As per the Visual Studio blogs, the splash screen was not developed using WPF since it would involve the CLR and WPF libraries to load causing a substantial delay in application loading. Hence, they reverted to C++ and Win32 stack to do that same for performance reasons.

Is there a feasible option available for Windows Forms or WPF developer to leverage the same branding? The idea is to have similar rich branding in a splash screen without loosing performance and start-up time.

Using PNGs and transparency effects does not help on Windows Forms (a known issue, and I have read related questions on this site for that). Just to emphasise: it's a splash screen, so start-up time can't be compromised.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

や莫失莫忘 2024-09-19 10:50:01

写它的人实际上在上面发了一篇文章,幕后花絮:启动画面 (2009-11-10)。 ..

The guys that wrote it actually did a post on it, Behind the Scenes: The Splash Screen (2009-11-10)...

枯寂 2024-09-19 10:50:01

我必须使用 大型多人在线游戏 (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 启动屏幕中)。

I had to do something similar with a patcher for an massively multiplayer online game (MMO), and we like pretty splash screens in games. I made a custom ONLOAD event (instead of OnShown or Load event that both present a few inconveniences in this case) and put my code for displaying the pretty picture there:

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
}

As for the picture, surely is there a way for displaying PNG files using native behavior (for partial transparency like in the Visual Studio splash screen).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文