2013-02-23 32 views
0

我有一個父網格(「輸出」)託管2個較小的網格。XML網格將不會擴展

較小柵格MainDisplay(其基本上示出了視框的圖像,我想利用所有的水平空間的除了在其他的2個個子網格的300)和輸入(一個固定的寬度的300,這實際上按預期工作)。

我的問題是:

1)母公司網格不會消耗所有的橫向空間。我想用額外的空間去ViewBox的網格。

我已經灑滿'Horizo​​ntalAlignment ='Stretch''和'Width =「*」'了,但它不會佔用屏幕上的所有空間!

2)我有後面的代碼來獲取圖像的寬度/高度。除非我明確設置高度,寬度後面的代碼試圖抓住高度和寬度並崩潰......但是如果我明確地設置寬度/高度,恐怕它不會佔用可用空間。

下面是代碼:

<Grid x:Name="Output" Background="#1D1D1D" Margin="0,2,0,-2" HorizontalAlignment="Stretch"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="300"/> 
    </Grid.ColumnDefinitions> 
    <Grid x:Name="MainDisplay" HorizontalAlignment="Stretch" VerticalAlignment="Top" Grid.Column="0"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 
     <Viewbox Width="Auto" Height="Auto" MinWidth="400" MinHeight="400" x:Name="Scenario4ImageContainer" Stretch="Uniform"> 
      <Image x:Name="Scenario4Image" PointerPressed="Scenario4Image_PointerPressed" HorizontalAlignment="Stretch" /> 
     </Viewbox> 
    </Grid> 
    <Grid Width="300" x:Name="Input" Grid.Column="1"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="Auto"/> 
     </Grid.RowDefinitions> 
     <StackPanel Grid.Row="0"> 
      <TextBlock Style="{StaticResource BasicTextStyle}" TextWrapping="Wrap" 
         Text="Tools" /> 
      <Grid Margin="0,10,0,0"> 
       <Grid.RowDefinitions> 
        <RowDefinition /> 
        <RowDefinition /> 
        <RowDefinition /> 
        <RowDefinition /> 
       </Grid.RowDefinitions> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="230" /> 
        <ColumnDefinition /> 
       </Grid.ColumnDefinitions> 

       <Button Grid.Row="0" Grid.Column="0" HorizontalAlignment="Stretch" Background="DarkSlateGray" 
         Content="Draw Mandelbrot set" Click="DrawMandelbrotSet_Click" /> 
       <TextBlock x:Name="Scenario4DrawMandelbrotDescription" Grid.Row="0" Grid.Column="1" 
          Style="{StaticResource BasicTextStyle}" TextWrapping="Wrap" VerticalAlignment="Center" 
          Text="Text." /> 

       <Button x:Name="Scenario4SetSourceButton" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Stretch" 
         Content="Load image using SetSource" Click="LoadImageUsingSetSource_Click" /> 
       <TextBlock x:Name="Scenario4SetSourceDescription" Grid.Row="1" Grid.Column="1" 
          Style="{StaticResource BasicTextStyle}" TextWrapping="Wrap" VerticalAlignment="Center" 
          Text="Text." /> 

       <Button x:Name="Scenario4LoadImageButton" Grid.Row="2" Grid.Column="0" HorizontalAlignment="Stretch" 
         Content="Load image using PixelBuffer" Click="LoadImageUsingPixelBuffer_Click" /> 
       <TextBlock x:Name="Scenario4LoadImageDescription" Grid.Row="2" Grid.Column="1" 
          Style="{StaticResource BasicTextStyle}" TextWrapping="Wrap" VerticalAlignment="Center" 
          Text="Text." /> 
      </Grid> 
     </StackPanel> 
    </Grid> 

回答

1

我對這個不是100%肯定,但在你的第一列定義嘗試"*"而不是"Auto"

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*"/> 
    <ColumnDefinition Width="300"/> 
</Grid.ColumnDefinitions> 
+0

真棒!我(錯誤地)認爲他們是一樣的。我想我正在閱讀這本書,我也很快 – micahhoover 2013-02-23 03:01:24