c语言进程启动器,【还是弃坑吧】【请解除精华】从零开始编写启动器【WPF万岁】【C#大法好】...

第一部分:弹指之间实现窗体阴影

像下面这种类型的极简扁平化的窗口你应该见过多次吧!

图片为VipAide软件截图,软件版权系兰州所有。

这种抛弃Windows默认设计风格的新型窗口一看就让人心旷神怡,但如何做到呢?

如果你在用易语言:加模块,加模块,加模块

如果你用CPP:DllImport,DllImport,DllImport

如果你用VB winform:DllImport,DllImport,DllImport

如果你用C# winform:DllImport,DllImport,DllImport

如果你用C#+XAML界面语言:鼠!标!点!就!够!了!

*笔者只写过VB winform和CPP以及C# .NET(包括winform、WPF和UWP)。以上内容的观点可能有误,欢迎指正。

以下就是使用XAML达到该效果的详细操作方法。(代码方法不讲,教程的第一章节面向小白)

首先像上一节一样选中设计视图中的整个窗口,然后打开属性选项卡。展开“外观”节点。勾选AllowTransparency右侧的复选框。此时效果如图所示:

该效果的目的是允许窗口有透明的部分。

接下来,我们看到AllowTransparency下方的BorderThinkness(边框粗细)属性,将右侧的四个TextBox的值设置为20。现在你可以看到窗口的白色区域变小了,但窗口的外框仍然不变。

而后,继续看到BorderThinkness下方的Effect(窗体效果)(这三个选项就是连在一起的233),点右侧的“新建”按钮,在弹出的窗口选择DropShadowEffect并确定。这时候,我们看到Effect已经变成了一个包含了巨多选项的节点。首先设置ShadowDepth的值为1,使阴影位置处于窗口正下方。然后设置BlurRadius为15,让阴影扩大。接着调整Opacity为30%左右。(操作方法和Photoshop的混合选项的阴影通道类似)

现在预览图中的窗口就长这样啦:

是不是很有现代气息并且简单至极啊?

第二部分:伪造标题栏

今天咱的任务是伪造标题栏hhh,就是做一个标题栏然后附上关闭按钮和最小化按钮。这个部分将是我们第一次使用后台的运行代码。这时候你可能会说:吓死我这个寄存器了!(汇编玩多了

首先,我们看到设计器的代码视图。让我们略微理解一下在WPF下,XAML的结构。(该段可选)

XAML本质意义上类似于XML和HTML,但和YAML截然不同。

在HTML中,最巨大的容器节点为html其次是body,body是装有各种控件的容器。而html又有很多属性节点,比方说head和script等等。XAML也类似。

在WPF下(Win8、Silverlight、WP8、UWP除外),最高节点是,类似于HTML的html,的节点中存储着很多窗口的属性和控件样式资源以及动画资源。其包含着装有各种控件的容器。大多数节点只能有一个,所以一个窗口不能有两个。不过可以存储理论上无限的控件资源(内存溢出吧你。所以说,我们大部分在XAML设计器中消磨的时光,都是和Grid在一起♂。

而今天,我们也将首次抛弃可视化的设计器。直接在代码视图中对界面进行编辑。

首先在Grid中写上如下代码:

复制代码注意:和html一样,一定要在后面加上斜杠。(XAML的大多数语法和HTML相同,以后不详述

这段代码用以新建一个矩形

接着我们给这个矩形附上一些属性,不提供示例代码,以下为语法

复制代码这些属性是:

Fill="你想要的颜色"                           左边的属性指示填充色

VerticalAlignment="Top"                   这指示垂直排序,设置为Top时空间默认在窗体顶部

Height="30"                                      高度,单位px

没啦。

现在如果不出问题的话你应该会看到窗口的顶端出现了一条诡异的东西。

如果你这时候启动,那么当你鼠标在这诡异东西上方按住拖动时窗口不会移动。咋办呢?

激动人心的编码时刻开始啦!

我们再给Rectangle添加一条属性,是MouseDown="这里输入事件名,尽量不要中文",然后把光标移动到事件名上,按下F12,即切换到代码视图。

在事件代码中写上:

现在就可以拖动窗口啦。

分号别漏!分号别漏!分号别漏!

小插曲:窗口资源节点

WARNING

接下来的这一部分直接进入了XAML的较难环节,我会直接提供代码。但自定义部分不会提供。

首先咱来了解一下何为WPF中的窗口资源,即Window.Resources标签。

Window.Resources中可以存储诸多内容,例如窗口的动画效果、控件的样式和巨多乱七八糟的东西(这不是废话吗

今天呢,我们得用到Window.Resources中的Style标签。

首先在Grid节点之外创建一个节点,创建好后,整个XAML的结构如下:

......

......

这时候,我们在Resources的节点之内输入以下代码:

注意:x:Key可以更改,详情请看图中。另外,图中的颜色的属性都和教程的方向有偏颇,建议在理解的情况下,自行更改。请不要使用OCR光学识别。

在接下来的这段时间内,请自行对关闭按钮的格式和最小化按钮的格式进行定义。我已经传授给了你捕鱼的方法,鱼得你自己捕捉。

小提示:Window.Resources中可以拥有多个Style,但是各个Style的x:Key不能相同。

小插曲:应用样式于按钮

我敢赌五毛大多数人对上面的代码没有任何理解。别担心,还有更难的呢。

如果你有阿兰图灵一般聪明,成功理解了上面的Style。那么你可能会好奇。如何把样式应用于按钮呢?

其实很简单。今天的控件创建部分就不堆代码了,想必在这几天的玩耍中你应该知道了有一个装有所有控件的容器:工具箱。位于VS窗口左侧。首先我们从中拖一个Button到窗口上。然后切换到代码视图,给VS自动创建的Button节点添加一条属性(语法和上文的rectangle相同),属性是:Style="{StaticResource 你定义好的资源Key}",然后看看按钮样式是否变化成非默认样式了吧。

注:①其实这个例子也可以解释为何各个Style的x:Key不能相同,因为它们是需要调用的资源标识符。如果产生混淆,将无法调用,最终导致界面的dll(PresentationFramework.dll)崩溃。

②请灵活的使用代码提示,这可以节省不少时间。例如当你键入上方Style属性的StaticResource时,VisualStudio会自动打开一个窗格,内部有你可能会输入的代码,而当你要输入资源key的时候,VS又会列举所有的资源。

③请在适当的时候给程序添加注释,以防遗忘。注释语法和HTML相同:

小插曲:符号和导入字体

完成以上的工作后,你应该有能力也有信心完成伪造关闭按钮和最小化按钮的工作了。但当你想一展身手时,却发现自己没有关闭、最小化、最大化等等的符号!!!别担心,话说微软在Win10推出之际推出了一个符号字体,美其名曰:Segoe MDL2 Assets。该字体里啥都有(别想得那么猥琐。请自行百度并且下载安装该字体。

或许这个时候,你已经安装字体成功了。但在如此喜庆之时,我得再给你泼盆冷水:别人电脑上没这字体!!!

那咋办呢?

放心,WPF支持导入字体。

首先我们打开你的启动器项目的保存位置,在装有一坨文件(包括代码文件)的文件夹中,把你下载好的字体扔进去。接着,回到VS,打开VS窗体右侧的“解决方案资源管理器”,点击其工具栏中的“显示所有文件”,然后你就会发现自己放进去的字体出现在了文件列表中了。别急,接下来我们右键单击该字体,在弹出的右键菜单中选择“包括在项目中”。噫,导入部分完工。

接下来,我们选中你要作为带符号字体的按钮。打开VS右侧的属性窗格,找到Font的属性,然后在下拉列表的最顶端选择Segoe MDL2 Assets(所有导入的字体都会出现在字体列表顶端)。

接着,打开系统自带的字符映射表。将字体更改为Segoe MDL2 Assets(如图)。现在,就在如海般的符号中找寻你心仪♂的那一个吧!

别忘了插入进按钮的Text!

第三部分:通过事件给按钮赋予生机

噫完成以上任务后,你应该拥有了一个窗口的雏形。这时候你一定会纳闷儿:我的最小化按钮和关闭按钮咋点不了啊?

首先,我们给需要点击事件的按钮添加一条属性:Click="这里随便填,尽量别写中文",然后将光标移动到双引号中的任意字符,按下F12,切换到代码视图。键入需要的代码。

以下为两种情况的代码:

1.最小化

this.WindowState = WindowState.Minimized;复制代码2.关闭

this.Close();复制代码当然,WindowState中也有最大化的选项。如果需要请自行百度。

练到了这儿,我可以很欣喜地告诉你,第二节快完成了。不过,在第二节的最后,你还需要做一些小小的事情。

首先,创建一个启动游戏按钮,样式可自行定义。

其次,创建三个文本框,并且给他们分别赋予不同的x:Name属性。这三个文本框分别指示:玩家名称(目前先做盗版登录)、内存大小、java路径,样式同样可自定义。关于textBox的样式模式,可以自行百度。

恭喜你,第二节-初步的界面设计已经结束了!更多界面设计的内容,将出现在第四章-润色和加工。

你可能感兴趣的:(c语言进程启动器)