質問
プロジェクトで、サークル コントロールを追加し、中央にテキストを表示する必要があります。
私の問題は、円が小さすぎるため、サイズを変更すると他のコントロールと重なってしまうということです。円を正方形と同じ幅にしたいです。
または、コントロールの背景を透明にする方法は?
解決策
これは、半透明にすることができる Control から派生したカスタム コントロールです。
インターフェイスは、複数の数字を含めることができる色付きの円です。
このコントロールは次のカスタム プロパティを公開します:
不透明度 : コントロールの背景の不透明度レベル [0, 255]
InnerPadding (内部パディング) : 円の境界の内側の四角形とコントロールの境界の間の距離を定義します。
FontPadding (フォント パディング) : テキストと内側の四角形の間の距離。
CreateParams をオーバーライドし、ExStyle |= WS_EX_TRANSPARENT; を設定することで透明度を実現します。
Control.SetStyle() メソッドはコントロールの動作を変更するために使用され、次の ControlStyle を追加します:
▶ ControlStyles.Opaque: コントロールの背景が描画されないようにし、システムによって管理されないようにします。 CreateParams と組み合わせて使用すると、コントロールの拡張スタイルを WS_EX_TRANSPARENT に設定すると、コントロールが完全に透明になります。
▶ ControlStyles.SupportsTransparentBackColor: コントロールは背景色のアルファ値を受け入れます。 ControlStyles.UserPaint も設定しない場合、透明度のシミュレートには使用されません。他の方法で自分たちで行います。
それがどのように機能するかを確認するには、新しいクラス ファイルを作成し、その中のすべてのコードをこのコードに置き換え、名前空間を保持してプロジェクト/ソリューションをビルドします。
新しいカスタム コントロールがツールボックスに表示されます。それをフォーム上にドラッグ アンド ドロップします。必要に応じてカスタム プロパティを変更します。
コントロールの視覚的表現:
注意と免責事項
以上が他のコントロールと重ならないテキストを含む半透明の円形コントロールを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。