当我的应用程序启动时,我们怎么能显示启动画面,因为每个软件如Photoshop,vs word等?我计划将它粘贴在表格上,然后显示它,但有顶部的蓝色条,有控制等任何想法/
答案 0 :(得分:9)
如果您正在寻找最简单的方法,您可以使用.NET Framework对启动屏幕的出色内置支持。您必须抛开任何非理性的恐惧,你可能会有在C#应用程序中包含名称为“Visual Basic”的内容,但这样可以避免必须滚动自己的自定义解决方案,并担心多线程,调用等所有问题。无论如何,这一切都归结为同样的IL。以下是它的工作原理:
在项目中添加对Microsoft.VisualBasic
的引用。
添加一个新表单(名称类似于SplashForm
)作为启动画面。
要使其看起来更像正确的启动画面,请将表单的FormBorderStyle
property设置为“无”,将其StartPosition
property设置为“CenterScreen”。您可以将任何控件或图像添加到此表单,以便在启动屏幕上显示此表单。
将以下代码添加到Project.cs
文件中:
using System;
using System.Windows.Forms;
using Microsoft.VisualBasic.ApplicationServices;
namespace WindowsFormsApplication1
{
static class Program
{
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
new SplashScreenApp().Run(args);
}
}
public class SplashScreenApp : WindowsFormsApplicationBase
{
protected override void OnCreateSplashScreen()
{
this.SplashScreen = new SplashForm();
this.SplashScreen.ShowInTaskbar = false;
this.SplashScreen.Cursor = Cursors.AppStarting;
}
protected override void OnCreateMainForm()
{
//Perform any tasks you want before your application starts
//FOR TESTING PURPOSES ONLY (remove once you've added your code)
System.Threading.Thread.Sleep(2000);
//Set the main form to a new instance of your form
//(this will automatically close the splash screen)
this.MainForm = new Form1();
}
}
}
如果你想做一些像Adobe Photoshop一样的创建透明闪屏的东西,你可以将alpha通道PNG图像添加到项目的Resources文件中,然后添加以下内容代码到您的初始屏幕表单,将splashImage
替换为嵌入式图像资源的路径:
protected override void OnPaintBackground(PaintEventArgs pevent)
{
Graphics g = pevent.Graphics;
g.DrawImage(splashImage, new Rectangle(0, 0, this.Width, this.Height));
}
protected override void OnPaint(PaintEventArgs e)
{
//Do nothing here
}
要使其正常工作,请确保您已将关闭关闭,否则您将获得表单的黑色背景。无论如何,没有理由双重缓冲启动画面。
答案 1 :(得分:4)
你真的想要一个闪屏吗?网上有很多例子,例如:http://www.codeproject.com/KB/cs/prettygoodsplashscreen.aspx
答案 2 :(得分:2)
您可以通过this.FormBorderStyle = FormBorderStyle.None
中的Form_Load()
删除所有这些蓝条等。
如果我是你,我会创建一个特定大小的表单,然后在Form_Load()
中设置以下内容
或者直接在设计师生成的代码中:
this.FormBorderStyle = FormBorderStyle.None;
this.StartPosition = FormStartPostition.CenterScreen;
现在你有一个像许多其他应用程序一样的启动画面 - 所有你必须做的就是编写所有使其可见或不可用的代码等等:)
答案 3 :(得分:1)
WPF 3.5及更高版本实际上内置了启动画面支持,可以更快地渲染启动画面,并且代码更少(更多)。有关详细信息,请参阅this page。
答案 4 :(得分:0)
您在编写WinForms或WPF应用程序吗?您必须根据您编写的类型设置不同的属性。如果您正在编写WPF应用程序,则可以将WindowStyle =“None”和ResizeMode =“NoResize”属性添加到XAML中的Window顶级元素。第一个将使用最小化,调整大小和关闭按钮删除标题栏,而第二个将删除表单周围的边框。
现在,您有一个无边框表单,您可以根据需要进行修改以创建启动屏幕,或者只是添加启动图像。如果您不希望显示默认表单,则还需要添加Background =“Transparent”和allowsTransparency =“True”属性。第一个将背景颜色设置为透明,而第二个允许您的程序看起来透明。现在,您可以添加任何形状的任何图像,用户将在程序启动时仅看到该图像。
P.S。一旦启动屏幕显示一段时间,或者一旦应该“加载”东西的方法返回控制,一定要加载另一个表单。
非常简单的东西!!