2009-12-07 13 views
8

Silverlightでグリッドのセルパディングを簡単に追加するにはどうすればよいですか?各セルのマージンを設定するには非常に騒々しいように見えます。Silverlight(3.0):セルのパディングをグリッドに追加するには?

<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
</Grid.RowDefinitions> 
<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="Auto" /> 
    <ColumnDefinition Width="*" /> 
</Grid.ColumnDefinitions> 

<TextBlock Text="Type:" Grid.Column="0" Grid.Row="0"></TextBlock> 
<ComboBox Grid.Column="1" Grid.Row="0"></ComboBox> 
<TextBlock Text="Length:" Grid.Column="0" Grid.Row="1" ></TextBlock> 
<TextBox Grid.Column="1" Grid.Row="1"></TextBlock> 

+0

各セルにマージンを追加するのは「非常に騒々しい」とは言いません。 – AnthonyWJones

答えて

13

誰かが、おそらく、このソリューションの醜さのために私を十字架しますが、実際の行の間で二回あなたのパディング値に高さと幅セットで行と列を追加することができますし、データを含む列:

<Grid> 
<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="4" /> 
    <RowDefinition Height="Auto" /> 
</Grid.RowDefinitions> 
<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="Auto" /> 
    <ColumnDefinition Width="4" /> 
    <ColumnDefinition Width="*" /> 
</Grid.ColumnDefinitions> 
<TextBlock Text="test" Grid.Column="0" Grid.Row="0" /> 
<TextBlock Text="test" Grid.Column="0" Grid.Row="2" /> 
<TextBlock Text="test" Grid.Column="2" Grid.Row="0" /> 
<TextBlock Text="test" Grid.Column="2" Grid.Row="2" /> 
</Grid> 
+0

それどころか、私はこれが過去には非常に良い解決策であることを発見しました。 –

+0

私はこれまでこれを使用していましたが、それは私に苦労しました。要素に適用する正しい行と列番号を間違って計算していました。 – AnthonyWJones

+0

@ Anthony - 私は例を取り上げながら同じ問題を抱えていました:)しかし、グリッド全体の構文と構造は、私の意見では、非常に醜いです。私は1x1グリッドを本番で使ったことがあります。それ以外のものはStackPanelsとBordersです。 – Klay

2

個人的にはマージンを使用することをお勧めします。それを少しきれいにするには、それらをスタイルにリファクタリングすることができます。あなたはさらに一歩進んで、暗黙のスタイルマネージャーを使用することもできます。

本当に何かをきれいにしたい場合は、グリッドがロードされたイベントを処理し、すべての子の余白を設定するパディング付きプロパティを作成できます。

関連する問題