5

私はここでほとんどアイデアがありません...他のすべてについては、背景色をColor.Transparentに設定するか、TransparencyKeyを設定すると正常に機能します...

フォームの「背景」として再生する必要のあるmp4ビデオがあります。これを行うために、私は現在WMPコントロールを使用しています。私の問題:コントロールは常に背景をレンダリングするため、その上にコントロールを追加できません。これは**ビデオで見えます...

助言がありますか?

4

2 に答える 2

5

同様の状況で私がうまく使用したハック:

  • 別の枠のない透明なフォームを作成します (透明度はフォーム レベルで最適に機能します)。
  • そのフォームのホスト ボタン コントロール
  • ビデオ フォームの起動時にコントロール フォームを起動する
  • メイン フォームが変更されるたびにフローティング フォームが常に移動、サイズ変更などされるようにイベント処理をワイヤリングする
  • 親フォームの仕様に基づいて、フローティングの位置を計算します
  • フローティング フォームは常に親フォームの上にプッシュします。

それはハックだと言った。しかし、すべてのイベントと計算が接続されていれば、問題なく動作するはずです。

PS また、250 ミリ秒ごとに確認する関数を使用してポーリング タイマーを実行しなければならなかったことも思い出します。(アプリとウィンドウを切り替えると、Z オーダーが予期せず変更され、イベントが発生しなかったため、ポーリング ソリューションになりました。)

PS II このソリューションの実現可能性のプロトタイプを作成するのは非常に簡単です。上記の仕様で別のアプリを作成し、動画の上に移動するだけです。(ウィンドウを簡単に移動/サイズ変更できるようにするには、フォームの境界線を保持する必要があります。)

于 2011-10-31T14:40:37.050 に答える
1

GDI+ を使用してラベルをレンダリングしてみてください。

ここでサンプルを見ることができます: (透明部分で画像を描画するための GDI+ の使用): http://www.broculos.net/en/article/how-use-transparent-images-and-labels-windows-forms

于 2011-10-31T14:41:52.450 に答える