[Wpf学习] 1.传说中的Main

QCkiss 2020-04-17

原来的C#程序都有Main的,现在用vs新建一个Wpf项目,启动似乎变成App.xmal,前期项目中为了获取启动参数,很是折腾了一番:

1.先是修改App.xaml,添加StartUp事件

<Application x:Class="YKMain.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:YKMain"
             Startup="Application_Startup">

2.然后编辑Application_Startup,判断e.Args数组

private async void Application_Startup(object sender, StartupEventArgs e)
  {
  }

总感觉跟又臭又长的裹脚布一样,不爽。学习后,找回了传说中的Main,莫有App.Xaml,直截了当。

using System;
using System.Windows;

namespace L1_NoXaml
{
    public class Program : Application
    {
        [STAThread]
        static void Main(string[] args)
        {
            Program app = new Program();
            app.MainWindow = new Window1();
            app.MainWindow.ShowDialog();
        }
    }
}

PS:2020/3/3完善了一下

using System;
using System.Windows;

namespace YKMainCore
{
    public class Program : Application
    {
        [STAThread]
        static void Main(string[] args)
        {
            SplashScreen splashScreen = new SplashScreen("id.png");
            splashScreen.Show(true);

            MainWindow window = new MainWindow()
            {
                WindowStyle = WindowStyle.None,
                ResizeMode = ResizeMode.NoResize,
                WindowState = WindowState.Normal,
                ShowInTaskbar = false,
                Background = System.Windows.Media.Brushes.Transparent,
                AllowsTransparency = true,
                Left = 0,
                Top = 0,
                Width = SystemParameters.PrimaryScreenWidth,
                Height = SystemParameters.PrimaryScreenHeight
            };

            Program app = new Program();
            app.Run(window);
        }
    }
}

相关推荐