Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF中的部分着色圆计时器_C#_Wpf_Timer_Geometry - Fatal编程技术网

C# WPF中的部分着色圆计时器

C# WPF中的部分着色圆计时器,c#,wpf,timer,geometry,C#,Wpf,Timer,Geometry,在哪里可以开始用C#绘制动画几何体?我想通过画一个部分着色的圆圈来画一个倒计时计时器。在开始时,圆将完全着色,在75%时,圆的3/4将着色,在0时完全不着色。我真的不知道从哪里开始这样的事情 如果你仍然不明白我需要什么,很多游戏都会使用这种动画来表示物品或技能的“冷却”。就像一只秒针,绕着时钟转,揭示它下面的东西 WPF是我的目标应用程序,但我想我需要使用某种GDIAPI。是的,使用WPF非常简单。 只需在圆的顶部创建另一个圆,将其变为黑色,然后让计时器按时间(或任何您想要的时间)将顶部圆的不透

在哪里可以开始用C#绘制动画几何体?我想通过画一个部分着色的圆圈来画一个倒计时计时器。在开始时,圆将完全着色,在75%时,圆的3/4将着色,在0时完全不着色。我真的不知道从哪里开始这样的事情

如果你仍然不明白我需要什么,很多游戏都会使用这种动画来表示物品或技能的“冷却”。就像一只秒针,绕着时钟转,揭示它下面的东西


WPF是我的目标应用程序,但我想我需要使用某种GDIAPI。

是的,使用WPF非常简单。 只需在圆的顶部创建另一个圆,将其变为黑色,然后让计时器按时间(或任何您想要的时间)将顶部圆的不透明度从1更新为0

这是“简单”的方法。一种更“方便”或“WPF风格”的方法将包括绑定和可能的值转换,您将使用值转换器将圆的不透明度绑定到自定义值(或减少该值,无论如何有很多方法)


选择你想要的。它们都可以工作。

您可以从这里的绘图示例开始,了解如何制作饼状图形:

看起来他们使用的是
StreamGeometryContext
,还有
LineTo
ArcTo

然后,您可以将动画应用于该图形上的属性,通过更改弧长,使“切片”随时间变大:

然后,您可以将这一切很好地包装在带有自定义依赖属性的
UserControl
中,这样您就可以在整个应用程序中重用它


编辑:我想你指的是魔兽世界中的阴影派。你想要的其实更简单。请参阅poyrazoğlu的答案,了解可采用的图形方法(尽管如果您采用不透明方法,您实际上只需要顶部的黑色圆圈)。

您应该编辑您的帖子以实际提问。例如,在结尾处添加“我从哪里开始在WPF中绘制动画几何体?”很抱歉,我在解释时做得不好,我希望它能像秒针一样不停地移动,通过揭开阴影区域来工作。我正在拍摄《魔兽世界》中的冷却效果。看起来不错,将在标记为答案之前查看链接。谢谢