
摘要:
本文提供了使用单纯只WPF技术开发类似游戏《英雄联盟》中的PLAY按键的详细内容讲解和分析。它突出了利用WPF功能创建多功能用户界面组件的过程,并提供了新的开源开发思路。文章还探讨了使用WPF的高级功能,如动画和触发器,以增强用户交互体验。
引言:
用户界面组件在提升用户体验方面至关重要。在游戏中,一个反应灵敏且视觉吸引人的PLAY按钮是进入娱乐世界的门户。本文采用的方法展示了使用WPF创建播放按钮的过程,WPF为构建丰富的桌面应用提供了强大的框架。
项目背景:
本文讨论的项目是一个旨在尽可能多的展示WP技术F优秀能力的开源项目。几年前我们发布了该项目,并受到了极大的积极反响,这样的动力也一直鼓励着我们继续进行开源贡献。在.Net技术迭代更新的同时,我们也在不断的更新和完善之前公布在GitHub上的代码。由于这个总项目涉及的内容较多,因此我们决定将其进行拆解,逐个详细分析每个部分的构成和技术重点,希望能为更多喜欢WPF技术的人学习过程中提供帮助。
按钮组成:
通过分析器(我们独立开发的开源项目,目前暂未公布)我们可以看到这个PLAY按钮继承了WPFToggleButton的属性,左侧是一个英雄联盟游戏的Logo,右侧是一个由不同设计的Border、图片和文本组成的多元素图形,此外还添加了交互式mouseover和checked触发效果。
项目重点内容分析:
1.创建不规则形状:
前两个图形我们可以简单的用Border进行编码。第三个图形是一个包括尖头和弧线的不规则图形,所以不能简单的使用Border进行编码。因此我们一开始可能会想到是有Polygon利用坐标进行绘制,但是Polygon属性并不能提供绘制弧线的功能,所以我们应该使用Path进行编码。
具体分析: 在WPF中,Path 控件是一个非常强大的工具,用于绘制各种形状和轮廓。Path 控件使用路径数据(Path Data)来定义形状,路径数据包含一系列命令和坐标,以指定如何绘制形状。
<Style TargetType="{x:Type Path}" x:Key="Arrow">
<Setter Property="Fill" Value="#1E2328"/>
<Setter Property="Stroke" Value="{StaticResource ArrowStroke}"/>
<Setter Property="StrokeThickness" Value="2"/>
<Setter Property="Data" Value="M 0,0 L 103,0 L 118,14 L 103,28 L 0,28 C 10,14 0,0 0,0 Z"/>
<Setter Property="Margin" Value="40 5 4 -5"/>
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="5" ShadowDepth="2"/>
</Setter.Value>
</Setter>
</Style>
它的基本属性有:
(1)Data 属性: Data 属性是 Path 控件的关键属性,它用于指定路径数据,即一系列的命令和坐标,来描述形状的轮廓。 路径数据的格式是一系列的命令,如 MoveTo(M)、LineTo(L)、CurveTo(C)、ClosePath(Z)等,配合坐标来定义形状。 通过在 Data 属性中提供路径数据,我们可以创建各种不同的形状,包括线段、曲线、多边形等。
(2)Fill 属性: Fill 属性用于指定形状内部的填充颜色。我们可以使用颜色、渐变、图案或透明度来填充形状的内部。
(3)Stroke 属性: Stroke 属性用于指定形状的轮廓颜色。你可以使用颜色来定义轮廓线的颜色。
(4)StrokeThickness 属性: StrokeThickness 属性用于指定轮廓线的粗细。它确定了轮廓线的宽度。
(5)命令和坐标: 路径数据由一系列的命令和坐标组成,这些命令告诉WPF如何从一个点到另一个点绘制形状。
常见的路径命令包括:
M(MoveTo):将绘制点移动到指定的坐标。
L(LineTo):绘制一条直线到指定的坐标。
C(CurveTo):绘制贝塞尔曲线,使用控制点来定义曲线的形状。
Z(ClosePath):闭合路径,将当前点连接到路径的起始点,形成一个封闭的形状。
Data 属性是 Path 控件的关键属性,它用于指定路径数据,其中包含了绘制形状的命令和坐标。路径数据使用一系列的命令来描述路径的轮廓。
以下是这个项目中路径数据中的命令和坐标的详细解释:
我们可以简单的将其理解为X/Y坐标轴,我们将这个图形的长设置为118,宽设置为28:M 0,0: 这是一个"MoveTo"命令,它将绘制点移动到坐标 (0, 0) 的位置,即起始点。L 103,0: 这是一个"LineTo"命令,它从当前点 (0, 0) 绘制一条直线到坐标 (103, 0) 的位置。接下来依次利用L绘制到(118,14),(103,28),( 0,28)的连续的直线图形

本文详细讲解了使用WPF技术开发类似《英雄联盟》中PLAY按键的过程。介绍了项目背景,分析了按钮组成,重点探讨了创建不规则形状、渐变色,对比了Path和Border对边界线的处理方式,还提及利用Jamesnet.WPF Nuget制作动画及使用Clip属性解决文字显示问题。
最低0.47元/天 解锁文章
1万+





