2009-07-28 26 views
3

何かが読み込まれるのを待たなければならないときに、ユーザーに「待機カーソル」を表示したいと思います。カーソルはアニメートされた一連のビットマップでなければなりません。.NET Compact Framework 3.5アニメーション透過ウェイトカーソル

フォームに追加できるUserControlを使用できますが、UserControl自体は透明ではありません。

ここでコードサンプルを入手しました(http://www.microsoft.com/downloads/details.aspx?FamilyId=33817CE0-B5E9-4B8E-916B-E6A381E03789&displaylang=en)。それが動作している間、別のオブジェクトのフォームからアニメーションを切り離したいと思っています。私がそれをすると、サンプルアプリケーションでは動作しますが、実際のアプリケーションでは動作しません。

提案がありますか?これは.NETにあります。3.5

答えて

2

Windows CEでは透過ウィンドウがサポートされていないため、達成しようとしていることは実際にはかなり困難です。 Colorkeyの透明度を使用して、透明な画像をウィンドウに描画できますが、そのウィンドウが別のウィンドウと重なっている場合(フォームの上のUserControlの場合のように)、グレーの背景、 UserControlのOnPaintBackgroundをオーバーライドしているかどうかによって、デスクトップまで一貫して「穴」ができます。

UserControlが実際に親に電話をかけてを呼び出す必要があるのは、のOnPaintメソッドで、UserControl自体を描画する前にクリッピング領域の境界があることです。

残念ながら、IoCワークスペースで実装されているベースとインターフェイスを使用してプロジェクトUIフレームワークとかなり密接に結合されているため、簡単なコード例はありません。簡単な例(私はいつかブログエントリのためにやるつもりですが、今日はそうではありません)にそれを留めておくのに数時間かかります。

+0

私はそれは私がやっていないよクリッピングだと思うが。透明性のないユーザーコントロールで動作するバージョンが1つあります。私はフォーム参照からグラフィックを作成し、graphics.DrawImage()を使用して私のアプリ(MSDNのサンプルで動作する)で全く動作していない2番目のものがあります。これはおそらくOnPaintと関係があります... – chocojosh

2

任意のサードパーティのライブラリなしでネイティブCFの等価なものがあります:

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

非表示にするには:

Cursor.Current = Cursors.Default; 
関連する問題