C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 任意のボタン形状を作成した後について


(過去ログ 102 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■60865 / inTopicNo.1)  任意のボタン形状を作成した後について
  
□投稿者/ 青和 (1回)-(2011/07/21(Thu) 18:26:57)

分類:[C#] 

OS:ウィンドウズ7
アプリケーション:VS2010、C#

質問内容
ネット上で紹介されてる方法で円形、台形、三角形といった
任意の形状のボタンコントロールを作成したのですが、
このボタンの作成方法
 (ボタンを継承して任意の形状を座標で指定)
でも、通常のボタンのように、以下のような状態を表示することが
できるでしょうか?


・ボタンが押されてない、浮いた表示。
・ボタンが押されて、沈んだ表示。


参考にしたサンプルはいずれも、ボタンの色を変えることで、
押してない状態と押した状態を表現していました。
通常のボタンコントロールのように、浮いた状態、沈んだ状態を
簡単に表現することができるのでしょうか?

以上よろしくお願いします。


引用返信 編集キー/
■60869 / inTopicNo.2)  Re[1]: 任意のボタン形状を作成した後について
□投稿者/ 魔界の仮面弁士 (2267回)-(2011/07/21(Thu) 19:50:44)
No60865 (青和 さん) に返信
> でも、通常のボタンのように、以下のような状態を表示することが
> できるでしょうか?

できますが、そこは自作せねばならないでしょう。

通常のボタンにおいて、それが押された状態というものが画面上で
どのように表現されているかどうかを把握しておられますか?
(OS によっても多少の差異がありますけれども)

コントロールの形状を変化させた以上、そうした標準の描画処理では
期待通りの結果にはならないでしょうから、OS が行っていたそれらの表現を
自分なりに構築していく必要が生じるかと思います。たとえば

 (案1) 押された時とそうでない時とで、コントロールの背景画像を差し替える。
 (案2) OnPaint の処理を差し替えて、自前で凹凸状態を描画する。
 (案3) テキストや背景色などを変更する事で、押されたかどうかを表現する。
 (案4) 押された時に、ボタンの座標またはサイズを微妙にずらして表現する。
 (案5) 押されている間だけ、さらに別の形状に差し替える。

などのように。ただし、何を正解とするかはそのアプリの仕様次第かと思います。


> ネット上で紹介されてる方法で円形、台形、三角形といった
> 任意の形状のボタンコントロールを作成したのですが、

継承ボタンに形状を座標指定との事ですが、それはどんな方法ですか?
 (WPF の場合)テンプレートを適用したとか
 (WinForm で)Region プロパティを用いたとか
 〜〜という URL にある方法を試したとか…
引用返信 編集キー/
■60876 / inTopicNo.3)  Re[2]: 任意のボタン形状を作成した後について
□投稿者/ 青和 (2回)-(2011/07/22(Fri) 10:20:07)
早速のアドバイス、ありがとうございます。

>  (案1) 押された時とそうでない時とで、コントロールの背景画像を差し替える。
>  (案2) OnPaint の処理を差し替えて、自前で凹凸状態を描画する。
>  (案3) テキストや背景色などを変更する事で、押されたかどうかを表現する。
>  (案4) 押された時に、ボタンの座標またはサイズを微妙にずらして表現する。
>  (案5) 押されている間だけ、さらに別の形状に差し替える。
やはり、一連の動作を自作しなければならないのですね。



> 継承ボタンに形状を座標指定との事ですが、それはどんな方法ですか?
>  (WPF の場合)テンプレートを適用したとか
>  (WinForm で)Region プロパティを用いたとか
>  〜〜という URL にある方法を試したとか…

参考までに私が確認したサンプルのURLをお知らせします。

C#
ボタンを継承して星型のボタンを作成するサンプル。
 ・http://uchukamen.com/Programming1/StarButton/index.htm
継承は使わず、任意形状のボタンを作成するサンプル。
 ・http://dobon.net/vb/dotnet/form/formregion.html#section6

VB
任意形状のボタンを作成するサンプル。
 ・http://bbs.wankuma.com/index.cgi?mode=red&namber=55173&KLOG=92



自作した場合の工数と重要度を検討して、それでも自作するのか、通常のボタンで済ませるか、
改めて決めたいと思います。

ありがとうございます。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -