2

とにかく、タブコントロールに少し苦労しています。新しいタブ コントロールをフォームにドラッグすると、期待していたグレー (システム カラー) ではなく、白く表示されます。

プロパティを見ると、その色は web-transparent に設定されています。わかりましたので、透明にする必要があります(背後にあるものが透けて見えることはありません)。タブ コントロールの背景色を手動でシステム グレーに戻すと機能しますが、上部のタブは依然として白として表示されます。どういうわけか色も変更できると思いますが、すぐにデフォルトから非常に多くの値を変更する領域に入り込んでおり、何かタイプの領域が明らかに欠けています。私はできる限り「透明なタブコントロールが白く描画する」のすべてのバリエーションをグーグルで検索しました.Windowsプロファイルと関係があることがわかりましたが、これはアクセスでアクセスしたvbを使用して2003にアクセスすることにほとんど限定されているようでした.

次の説明を探しています。

  • タブ コントロールで透明度を正しく使用するために必要なこと
  • タブコントロールの透明性の目的として私が誤解していること
  • タブ コントロールの適切な部分のすべての色を透明にならないように簡単に変更する方法。

MCTS の Windows フォームを検討しているので、「代わりに X を使用する必要があります」というような回答はしないでください。

4

1 に答える 1

5

いいえ、白くなるのは確かに正常です。ビジュアルスタイルが有効になっている場合、TabControlとTabPageはテーマカラーでレンダリングされます。そのため、標準のWindowsテーマのマシンではタブページが白くなります。

はい、透明のデフォルトのBackColorは非常に珍しいです。TabControlの背景が透明であると見なさない限り、これで実際の透明度が得られることはほとんどありません。ロジックはかなり複雑です。説明しようとするのではなく、MSDNの説明を貼り付けます。

UseVisualStyleBackColorプロパティとApplication.RenderWithVisualStylesプロパティの値が両方ともtrueであり、親TabControlのAppearanceプロパティの値がNormalである場合を除き、BackColorプロパティのデフォルト値はControl.DefaultBackColorプロパティの値です。この場合、 BackColorプロパティはTransparentです。TabPageに配置する子コントロールは、デフォルトでBackColor値を継承するため、この動作により、子コントロールの背景が現在の表示スタイルでレンダリングされます。

BackColorプロパティの値を変更すると、UseVisualStyleBackColorプロパティが自動的にfalseに設定されます。TabPageの背景を視覚的なスタイルを使用してレンダリングしたいが、子コントロールに指定したBackColor値を継承させたい場合は、BackColorプロパティを設定した後にUseVisualStyleBackColorプロパティを設定します。

于 2013-02-22T02:27:01.250 に答える