0

アルファ混合フォームの Visual C# Kicks コードを試しました。TransparencyKeyこれは機能します (プロパティを削除するとすぐに)。つまり、W3C のPNG アルファ テスト イメージを使用して、その下にある他のウィンドウを表示できますが、フォーム上のすべてのコントロールが非表示になります。OnPaintおそらく、オーバーライドされているため、単にペイントされていません。スーパークラスを呼び出してみましたOnPaint:

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
    UpdateFormDisplay()

    MyBase.OnPaint(e)
End Sub

、しかし、これは何も変わりませんでした。MyBase.OnPaint (最初に電話しても違いはありません。)

残念ながら、アルファ混合フォームに関するほとんどの記事は、コントロールのない純粋なスプラッシュ スクリーンに焦点を当てていますが、最初にサインイン フィールドを表示し、次に進行状況バーを表示するパネルが必要です。

ところで、コントロールには透過性は必要ありません。PNG の透明度が本当に重要なのは、外側のエッジだけです。したがって、このすべての上に別のフォームを追加してこれを偽造する (2 つが常にタンデムに移動する) ことで十分かもしれませんが、私はよりスムーズなソリューションを好みます。

4

1 に答える 1

1

これをフォーム ctor の InitializeComponents(); の後に入れてみてください。

base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);

于 2008-09-27T10:34:01.290 に答える