2012-11-22 30 views
4

我有以下XAML,它顯示網格中的文本塊。問題在於它只是延伸出來,甚至比窗口寬度還要大。在網格列內製作一個TextBlock包裝

<Grid Background="Gray"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 

    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
     <ColumnDefinition Width="Auto" /> 
    </Grid.ColumnDefinitions> 

    <Label Grid.Row="1" Grid.Column="0" Padding="0" FontWeight="Bold" Margin="0,0,5,0">Description:</Label> 
    <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Description}" TextWrapping="Wrap" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" /> 
</Grid> 

回答

8

您需要的第二列restrict the width使文本換行 -

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

謝謝,你的榜樣工程。事實證明我的問題是錯誤的,真正的問題是DataGrid.RowDetailsTemplate,然後它裏面的這個內容。也許你將能夠回答這個問題:http://stackoverflow.com/questions/13518476/make-textblock-wrap-in-datagrid-rowdetailstemplate – Drahcir

+0

頁面不可用於您發佈的問題。 –

0

你需要一個網格分配器

<Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="5" /> 
       <ColumnDefinition Width="*" /> 
      </Grid.ColumnDefinitions> 
      <TextBlock FontSize="55" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap">Left side</TextBlock> 
      <GridSplitter Grid.Column="1" Width="5" HorizontalAlignment="Stretch" /> 
      <TextBlock Grid.Column="2" FontSize="55" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap">Right side</TextBlock> 
     </Grid>