2012-12-17 40 views
0

我正在开发一种面向webstream的infopanel程序,迄今为止是由Windows Form,C#完成的,它具有标签的面板。现在这很简单,我在做什么。目前它只是隐藏\显示面板,在一个窗口中更改测试,但我需要创建一个转换来将面板移出框架,并通过按下一个可以说30FPS的buttno来返回。我试图谷歌这个解决方案,但到目前为止,我只找到了解决方案,使用鼠标作为向量X,Y点并用鼠标移动项目和一个图书馆在这里: http://code.google.com/p/dot-net-transitions/平滑的面板移动

除库没有按” t可以使用背景图片和顶部标签的面板。面板\标签闪烁出来,以便背景在几微秒内可见。我读了创建一个计时器,计算每毫秒的位置,并将其移动到下一个点等创建FPS,但我不知道如何用面板做到这一点,因为我再次不知道如何获得面板x,y坐标。现在是否有任何其他解决方案用于我正在创建的这个程序?不同的编程语言,一个库,某种方式?有人建议C#和GDI,但我真的不知道如何工作,因为它只是形状,我想使用图像。

+0

如果您对WinForms不太深入,可以考虑使用WPF。它对流畅的动画有更好的支持。不过,如果你的背景只存在于WinForms中,它有一点学习曲线。 –

回答

0

WinForms使用GDI来绘制所有这些。这样做有很多秘籍,但他们仍然不会给你你真正想要的表演。 WPF是解决这些问题的方法。它旨在处理完全这样的事情,并做得很好。

WinForms + GDI只是普通的很慢,并不是真正为这种事情设计的。您始终可以在WPF中构建控件并将其放入DLL中,然后将其加载到winforms项目中。这可能会让你更接近你正在寻找的表现。

+0

非常感谢。我在不到5分钟的时间内完成了WPF所需的程序。 Google搜索了一些东西,编写了一些XAML Grid.Resources和Triggers,它的工作方式与我想要的一样!现在我只需要创建一个控制面板和按钮来控制这些动画。 – Nookie

+0

摇滚!我很高兴你能这么快。做得好。 – jmrnet

1

您可以隐藏面板(可见= false)并将内容复制到位图并进行动画处理,而不是直接绘制到窗体的图形对象。

所有(表单)控件都附带.DrawToBitmap方法。 您可以使用事件来更新窗帘背后的位图(标签等TextChanged)。

使用GDI +有时需要一些奇怪的代码用于动画上下文。

虽然,我会建议一个更清洁的方法与不同的平台(WPF或纯C++代码等)。