dragan10

The Silverlight Geek - Silverlightでのサイズの決定 - ピクセルとスター

2008-12-14 17:22:58

Silverlightでは、あらゆる寸法(幅や高さなど)はピクセル単位で表されます・・・そうでない時を除いて。

 

ピクセル

 

図形をつくったりマージンを設定するとき、あるいはコントロールの幅や高さを決める場合、その単位は暗黙のうちにピクセルになっています。たとえばこんな具合です。

<Button  Content="Button" Width="100" />
<CheckBox  Content="CheckBox" Height="20" Width="75"/>
<StackPanel Orientation="Horizontal" >
    <RadioButton Height="29" Width="106" Content="RadioButton1" />
    <RadioButton Height="29" Width="136" Content="RadioButton2" />
</StackPanel>
<ListBox Width="100" Height="100">
</ListBox>
<Slider Width="250" Height="25"/>
<swc:Calendar Height="150" Width="200" />

この例では、ボタンの幅からカレンダーの高さまで、すべての大きさはピクセル単位になっています。

比例(スター)サイズ

グリッドの行の高さや列の幅を設定する方法は二つあります。一つは絶対値で指定する方法で、これにはピクセルを使います。もう一つはプロポーショナルなサイズ指定です。Blendで余白をクリックして二つの行を作るとき、デフォルトではこの二つの行のサイズ指定は絶対値でなく、お互いの大きさに対する相対値でなされます。このことは、アートボード上では開いている鍵のマークで示され、Xamlではアスタリスク(*)のheight値で示されます。

行の高さがスターでサイズ指定されている場合、その単位はピクセルではなく、比になります。すなわち、Blendは上の行は全体の高さの25%に、下の行は75%になると示しているわけです。

仮に両方の鍵をクリックすると、高さの指定を絶対値に変えたことになり、鍵は閉じて、高さはそれぞれ120と360(アスタリスク無し)になります。単位はピクセルになっていますが、比率は元のままです。

 

抜き打ちテスト

この中に一つだけ違うものがあります。どれでしょう?

<Grid.RowDefinitions>
    <RowDefinition Height="0.25*" />
    <RowDefinition Height="0.75*" />
</Grid.RowDefinitions>

<Grid.RowDefinitions>
    <RowDefinition Height="100*" />
    <RowDefinition Height="300*" />
</Grid.RowDefinitions>

<Grid.RowDefinitions>
    <RowDefinition Height="100" />
    <RowDefinition Height="300" />
</Grid.RowDefinitions>

 
-jesse

 (原文はこちら

※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。
  • 新着記事
  • 特集
  • ブログ