タイトル : Re: ユーザーコントロールの背景を透明にすると文字がおかしくなる 投稿日 : 2017/02/10(Fri) 16:30 投稿者 : 魔界の仮面弁士
> コントロールのBackStyleプロパティを透明に設定されるとUserControl、LabelのBackStyleを透明にしています。 たとえば、このような表示になりますね。 http://www.vb-user.net/junk/replySamples/2017.02.10.14.49/Label1.png > すると、LabelのCaptionに設定された文字が一部欠けた状態になって表示されます。 https://www.microsoft.com/japan/msdn/vs_previous/vbasic/TechInfo/kb/vb5kbidx/KBBug.htm https://www.microsoft.com/japan/msdn/vs_previous/vbasic/TechInfo/kb/vb6kbidx/KBBug.htm 上記の 179052 [VB] 透過コントロール上の透過ラベルの Caption が表示されない に相当する障害ですね。 現在は該当ページが見えなくなっているようですので、Visual Studio 付属の MSDN Library で、改正前の文書番号「J046164」「Q179052」を検索してみてください。 > 背景を透明にしても文字をキレイに表示する方法はないでしょうか。 有効な対策は無いと認識しています。 フォームをキャプチャして、それを UserControl の不透明背景に転写するか、 もしくは、フォーム自体に直接描画するなどの対処にするか、あるいは UserControl は用いず、Label を直接 Form に貼るようにして、 Label の座標を調整して中央寄せのように見せかけるぐらいでしょうか。 その他、UserControl の MaskPicture と MaskColor を使うと言う手がありますが、 透過処理の都合上、TrueType/ClearType フォントのアンチエイリアスに対応できないため、 「透明」背景を使う方法だと、文字のジャギーが残ってしまい、綺麗な表示にはなりません。 |