前回、プロパティの簡単な利用例として、
Heightを使ってボタンの縦幅を操作しました。この時に、
Heightと
Widthで大きさを設定できることがわかりました。「じゃあ、位置は?」と思った人も多かったことでしょう。
実際に、Visual Studioでコントロールのプロパティを調べてみると、位置を示すようなプロパティがないことに気がつくはずです。LeftとかTopとか、XとかYとか、とにかくそういった感じのプロパティはありません。一体、どうやって位置が設定されているのでしょうか。
実は、「位置を示すプロパティ」というのはないのです。ではどうやってコントロールの配置場所が決められるのか。それは「
マージン」の指定によって、なのです。――マージンというのは、「余白幅」のことです。つまり、周りのものとどれだけ離して配置するかを示すものですね。このマージンによって、コントロールの配置は決められます。
実際に、Visual Studioで何かのコントロールを選択し、プロパティを調べてみましょう。「
Margin」というプロパティに、4つの数値をカンマで区切って並べたような値が設定されていることがわかるはずです。これは、この部品の左側・上側・右側・下側のマージンをそれぞれ指定したものなのです。
「じゃ、この
Marginをプログラムの中から設定する場合は、テキストで値を指定するのか」と思った人。いえいえ、そうではありません。これは、ただ単に値がそう表示されている、というだけで、「こういう値に設定する」ということとは別です。実際、
Marginの値を編集しようとすると、4つの値をそれぞれ入力する小さなパネルがポップアップして表示されることがわかります。あくまで「4つの値の組み合わせ」として
Marginは設定されているのです。テキストではありません。
では、プログラム内ではこの
Marginはどんな値になっているのか。それは「
Thickness」という値を使うのです。この
Thicknessは、
System.Windowsパッケージに用意されている構造体です。4つのマージン値を保持することができるように設計されています。この値を使って
Marginは設定されるのです。
下のリスト欄に、簡単な利用例を挙げておきます。
TextBox(
textBox1)と
Button(
button1)がページに配置されており、
button1の
Clickイベントに下リストのメソッドを設定します。ここでは、以下のようにしてThickness構造体を作成していますね。
Thickness margin = new Thickness(n, n, n, n);