【问题标题】:.NET Compact Framework 3.5 animated transparent wait cursor.NET Compact Framework 3.5 动画透明等待光标
【发布时间】:2010-11-14 18:44:40
【问题描述】:

我想在用户必须等待加载某些内容时向他们显示“等待光标”。光标应该是一系列动画位图。

我可以使用可以添加到表单的 UserControl,但 UserControl 本身并不透明。

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

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

【问题讨论】:

    标签: .net image compact-framework transparency


    【解决方案1】:

    您要实现的目标实际上非常困难,因为 Windows CE 不支持透明窗口。您可以使用 Colorkey 透明度将具有透明度的图像绘制到窗口上,但如果该窗口与另一个窗口重叠(如窗体顶部的 UserControl 中的情况),那么您将获得灰色背景或“孔”一直到桌面,具体取决于您是否覆盖了 UserControl 中的 OnPaintBackground。

    要使其正常工作,您必须做的是,在绘制 UserControl 本身之前,UserControl 必须实际调用其父级并使用剪切区域的边界调用 它的 OnPaint 方法。

    不幸的是,我没有一个简单的代码示例,因为在我们使用它的地方,我们通过在 IoC 工作区中实现的基础和接口将它与项目 UI 框架紧密耦合。我需要几个小时才能将它提炼成一个简单的例子(我打算在某天做一篇博客文章,但不是今天)。

    【讨论】:

    • 我认为这是我没有做的剪辑。我有一个版本可以与不透明的用户控件一起使用。我有第二个在我的应用程序中根本不工作(在 MSDN 示例中工作),我从表单引用创建图形,然后使用 graphics.DrawImage()。这可能与 OnPaint 有关...
    【解决方案2】:

    在没有任何第三方库的本地 CF 中有等效的东西:

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

    隐藏:

    Cursor.Current = Cursors.Default;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-26
      相关资源
      最近更新 更多