自作のユーザーコントロールを作成し、その中でそのコントロールが
貼り付けられたコンテナの背景色を取得したいのですができるでしょうか?
Unicodeが表示できるラベル風のユーザーコントロールを作成しているのですが、
LabelのBackStyleが透明なときと同様に透明にしたいのです。
ユーザーコントロールの上にUnicodeが表示可能なコントロールを配置しているため、ユーザーコントロール自身はBackStyleの設定ができるのですが、配置した
コントロールにBackStyleの設定がないため、背景色をコンテナを同じにしよう
と思っています。
> その中でそのコントロールが貼り付けられたコンテナの背景色を取得したいのですができるでしょうか?
フォームの背景色なら、AmbientオブジェクトのBackColorプロパティで得られます。
(AmbientChangeイベントも併用されると良いかと)
コンテナの背景色なら、ExtenderのContainerプロパティから、
BackColorを参照できるかも知れません。ただし、コンテナ側が
BackColorプロパティを実装していればの話ですけれども。
> LabelのBackStyleが透明なときと同様に透明にしたいのです。
マスクを指定した上で、BackStyleを透明に設定しておくとか。
> コントロールにBackStyleの設定がないため、
自作したUserControlに、BackStyleプロパティを実装すれば良いのでは。。。
(そういう事では無いのかな?)
早速の返事ありがとうございます。
AmbientオブジェクトのBackColorプロパティと
ExtenderのContainerプロパティの両方でコンテナ背景色の
取得できることが確認できました。
>(AmbientChangeイベントも併用されると良いかと)
このイベントはコンテナとなるフォームの何かが変更されたとき
発生するのでしょうか?
この中で、BackColorプロパティが透明のときの処理を追加する
ということでしょうか?
>自作したUserControlに、BackStyleプロパティを実装すれば良いのでは。。。
実装しようと思ってやっているのですが、自作UserControl内の
コントロール(VS-FlexGrid)にBackStyleプロパティがなかったため
背景色取得を考えたのですが、もっと良い方法があるのでしょうか?
そのようなコントロールを透明にする場合、マスクをしたりすることで、
本当に透明にできるのでしょうか?
知識不足で申し訳ありませんが、お知恵をお貸しください。
ツイート | ![]() |