2013-06-25 15 views
6

Devo aggiungere un rettangolo nella seconda riga della griglia. Ho bisogno del rettangolo per avere la larghezza uguale alla larghezza della griglia.Come allungare il rettangolo sulla cella della griglia in XAML

Ma il problema è che la larghezza della griglia viene decisa in fase di esecuzione. Se provo ad accedere a Width o ActualWidth sul codice arretrato, ottengo rispettivamente NaN o 0.0.

ColumnSpan e Stretch non funzionano. ecco il codice:

<Grid x:Name="downloadPdfGrid"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="20"/> 
     <RowDefinition Height ="Auto"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
    <Button x:Name="btn" Content="{Binding Button}" Visibility="Collapsed" Click="OnButtonClick" Grid.Row="0"/> 
    <Rectangle x:Name="underlineRect" Stretch="UniformToFill" Height="2" Fill="White" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1"/> 
</Grid> 

risposta

11

Hai provato:

<Rectangle x:Name="underlineRect" Stretch="UniformToFill" Height="2" Fill="White" 
      Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1" 
      Width="{Binding ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}}"/> 

O se avete il nome della griglia:

<Rectangle x:Name="underlineRect" Stretch="UniformToFill" Height="2" Fill="White" 
      Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1" 
      Width="{Binding ActualWidth, ElementName=downloadPdfGrid}"/> 

Edit: Ho dimenticato. Non ho lavorato molto con Rettangolo di per sé, ma questo potrebbe funzionare anche:

<Rectangle x:Name="underlineRect" Stretch="UniformToFill" Height="2" Fill="White" 
      Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1" 
      HorizontalAlignment="Stretch"/> 
+0

Grazie Simon. ma non ha funzionato. –

+0

Poi c'è qualcos'altro oltre alla griglia che non stai mostrando. Ho appena attivato un'applicazione WPF vuota con solo la tua griglia all'interno della finestra e ho testato il tuo codice originale e tutte e tre le modifiche proposte e tutte hanno funzionato (inclusa la tua). –

+0

Hai ragione. Il problema era dovuto all'elemento genitore. Grazie, Simon. Funziona perfettamente bene ora. –

Problemi correlati