2009-07-28 114 views
3

我想显示“等待光标”给用户时,他们不得不等待事情来加载。光标应该是动画系列的位图。.NET Compact Framework的3.5动画透明的等待光标

我可以用一个用户控件,我可以添加到表单中,但用户控件本身不是透明的。

我把这里提供的代码示例(http://www.microsoft.com/downloads/details.aspx?FamilyId=33817CE0-B5E9-4B8E-916B-E6A381E03789&displaylang=en)。虽然它有效,但我希望能够将动画与单独对象中的表单分离。当我这样做时,它适用于示例应用程序,但不适用于我的实际应用程序。

有什么建议吗?这是在.NET CF 3.5

回答

2

什么你想实现实际上是相当困难的,因为Windows CE不支持透明窗口。您可以使用colorkey的透明度来绘制透明度将图像投影到一个窗口,但如果该窗口重叠另一个窗口(如在一个窗体顶部的用户控件的情况下),那么你会得到无论是灰色的背景,或者“洞“一直到桌面,这取决于你是否覆盖了UserControl中的OnPaintBackground。

你需要做的是让UserControl实际调用它的父级,然后在绘制UserControl之前调用它的 OnPaint方法与你的剪辑区域的边界。

不幸的是,我没有这方面的一个简单的代码示例,因为在这里我们使用它,我们有它很紧耦合通过底座和接口的国际奥委会工作区实施的项目UI框架。我只需花几个小时就可以将它提炼成一个简单的例子(我打算在某一天为博客文章做一些事情,但不是今天)。

+0

我认为这是我不这样做剪辑。我有一个版本与用户控件一起工作,没有透明度。我有第二个在我的应用程序中工作不正常(在MSDN示例中工作),我从窗体引用创建图形,然后使用graphics.DrawImage()。这可能与OnPaint有关... – chocojosh 2009-07-28 20:07:06

2

有东西等同于天然CF没有任何第三方库:

Cursor.Current = Cursors.WaitCursor; // Show the "Loading" image in the middle of the screen 

要隐藏:

Cursor.Current = Cursors.Default; 
相关问题