WPF中的部分阴影圆圈计时器

时间:2011-07-19 01:06:56

标签: c# wpf timer geometry

在哪里可以开始在C#中绘制动画几何体?我想绘制一个部分阴影圆圈来绘制一种倒数计时器。在开始时,圆圈将被完全着色,在圆圈的75%3/4处将被遮挡并且在0处完全没有阴影。我真的不知道从哪里开始这样的事情。

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

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

2 个答案:

答案 0 :(得分:2)

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

http://www.codeproject.com/KB/WPF/PieChartDataBinding.aspx

看起来他们使用StreamGeometryContext,以及LineToArcTo

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

http://msdn.microsoft.com/en-us/library/ms752312.aspx#applyanimationstoproperty

然后,您可以在UserControl中使用自定义依赖项属性很好地将其全部包装起来,这样您就可以在整个应用中重复使用它。

编辑:我以为你的意思是“魔兽世界”中的阴影派。你想要的实际上更简单。请参阅poyrazoğlu对图形方法的回答(尽管你真的只需要顶部黑色圆圈,如果你采用不透明方法)。

答案 1 :(得分:1)

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

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

选择你想要的任何东西。他们都会工作。