私のアプリケーションはC#3.5、Winformsですが、とにかくP / Invokeが必要になる可能性が高いため、.NETに厳密に関連付けられているわけではありません。
ContextMenu
とMenuItem
クラスを介して所有者が描画するメニュー項目を作成しました。すべて正常に機能しますが、一部のアイテムについては、小さなアニメーションを作成したいと思います(アイテムに関連付けられたプロセスが実行されていることを示しています)。残念ながら、上記の2つのクラスは、Invalidate()
メソッドなどを提供しません。
これまでの私の最善のアイデアはWindowFromDC()
、最初のOnDrawでP / Invokeを実行し、結果のハンドルを保存してInvalidateRect()
から、メニューが閉じるまで定期的にハンドルを呼び出すことです。
これはちょっとハックなようですが、私はまだ試していません。もっとエレガントな方法があるのではないかと思います。