2009-12-07 12 views
8

Come aggiungere facilmente una cella di riempimento per una griglia in Silverlight? Per impostare i margini per ogni cella sembra molto rumoroso.Silverlight (3.0): Come aggiungere il riempimento cella a una griglia?

<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

Difficilmente ho detto che l'aggiunta di Margine in ogni cella era "molto rumoroso". – AnthonyWJones

risposta

13

Qualcuno probabilmente mi crocifiggere per la bruttezza di questa soluzione, ma è possibile aggiungere righe e colonne con altezza e la larghezza impostato per due volte i valori di riempimento tra le file attuali e colonne che contengono dati:

<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

Al contrario, ho trovato che questa è una buona soluzione in passato. –

+0

L'ho usato in passato ma mi ha fatto impazzire, per sempre ho calcolato male il numero corretto di righe e colonne da applicare a un elemento. – AnthonyWJones

+0

@ Anthony - Ho avuto lo stesso problema durante l'esecuzione dell'esempio :) Ma poi, l'intera sintassi e la costruzione Grid è, a mio parere, estremamente brutta. Ho sempre usato una griglia 1x1 in produzione - tutto il resto è StackPanels and Borders. – Klay

2

Personalmente preferisco usare i margini. Per pulirlo un po ', puoi rifattenerli in stili. Potresti anche andare avanti di un passo e usare un gestore di stili implicito.

Se si desiderava veramente qualcosa di pulito, è possibile creare una proprietà associata al riempimento che gestisca l'evento caricato in griglia e quindi imposta i margini di tutti i bambini.

Problemi correlati