Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 在文本块列中使用换行字时,数据网格高度太高_Wpf_Xaml_Datagrid_Height_Word Wrap - Fatal编程技术网

Wpf 在文本块列中使用换行字时,数据网格高度太高

Wpf 在文本块列中使用换行字时,数据网格高度太高,wpf,xaml,datagrid,height,word-wrap,Wpf,Xaml,Datagrid,Height,Word Wrap,我希望使用一列表示相当长的文本值的数据网格。因此,我的目标是: 列宽与剩余窗口空间一样宽(窗口可以重新调整大小) 根据需要换行文字 将数据网格高度限制为窗口的剩余高度,并根据需要提供垂直滚动 下面的代码满足前两项的要求,并提供了一个正常工作的垂直滚动条,但是数据网格的高度对于显示的内容来说太高了。从文本块中删除自动换行可以修复此问题。。。但我需要这个词 如何在数据网格高度过大的情况下保持自动换行功能 <ScrollViewer VerticalScrollBarVisibility="

我希望使用一列表示相当长的文本值的数据网格。因此,我的目标是:

  • 列宽与剩余窗口空间一样宽(窗口可以重新调整大小)
  • 根据需要换行文字
  • 将数据网格高度限制为窗口的剩余高度,并根据需要提供垂直滚动
下面的代码满足前两项的要求,并提供了一个正常工作的垂直滚动条,但是数据网格的高度对于显示的内容来说太高了。从文本块中删除自动换行可以修复此问题。。。但我需要这个词

如何在数据网格高度过大的情况下保持自动换行功能

<ScrollViewer VerticalScrollBarVisibility="Auto">
   <Grid>
      <Grid.ColumnDefinitions>
         <ColumnDefinition Width="Auto" />
         <ColumnDefinition Width="*"/>
      </Grid.ColumnDefinitions>
      <Grid.RowDefinitions>
         <RowDefinition Height="Auto" />
         <RowDefinition Height="Auto" />
      </Grid.RowDefinitions>
      <!-- other controls in different parts of the data grid -->
      <DataGrid Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left"
         Margin="0,6,6,6" Name="dgMessages" VerticalAlignment="Top" 
         Background="DarkGray" HeadersVisibility="None"
         AlternatingRowBackground="Gainsboro" CanUserResizeColumns="False"
         CanUserResizeRows="False" CanUserSortColumns="False" 
         AutoGenerateColumns="false" BorderBrush="Black" HorizontalGridLinesBrush="{x:Null}"
         ItemsSource="{Binding Messages, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
             <DataGrid.Columns>
                 <dg:DataGridTemplateColumn Width="*">
                     <dg:DataGridTemplateColumn.CellTemplate>
                         <DataTemplate>
                             <TextBlock Text="{Binding Value}" 
                                TextWrapping="WrapWithOverflow" 
                                Padding="5,5,5,5" />
                         </DataTemplate>
                     </dg:DataGridTemplateColumn.CellTemplate>
                 </dg:DataGridTemplateColumn>
             </DataGrid.Columns>
         </DataGrid>
     </Grid>
 </ScrollViewer>


“dg”命名空间为http://schemas.microsoft.com/winfx/2006/xaml/presentation“

删除scrollviewer并将包含数据网格的行的高度设置为”*”修复了此问题。当数据网格不在自动调整为内容大小的行中时,通常会处理数据网格列中的换行文本

以下是结束代码:

<Grid>
   <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto" />
      <ColumnDefinition Width="*"/>
   </Grid.ColumnDefinitions>
   <Grid.RowDefinitions>
      <RowDefinition Height="Auto" />
      <RowDefinition Height="*" />
   </Grid.RowDefinitions>
   <!-- other controls in different parts of the data grid -->
   <DataGrid Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left"
      Margin="0,6,6,6" Name="dgMessages" VerticalAlignment="Top" 
      Background="DarkGray" HeadersVisibility="None"
      AlternatingRowBackground="Gainsboro" CanUserResizeColumns="False"
      CanUserResizeRows="False" CanUserSortColumns="False" 
      AutoGenerateColumns="false" BorderBrush="Black" HorizontalGridLinesBrush="{x:Null}"
      ItemsSource="{Binding Messages, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
      <DataGrid.Columns>
         <dg:DataGridTemplateColumn Width="*">
            <dg:DataGridTemplateColumn.CellTemplate>
               <DataTemplate>
                  <TextBlock Text="{Binding Value}" TextWrapping="WrapWithOverflow" Padding="5,5,5,5" />
               </DataTemplate>
            </dg:DataGridTemplateColumn.CellTemplate>
         </dg:DataGridTemplateColumn>
      </DataGrid.Columns>
   </DataGrid>
</Grid>

删除scrollviewer并将包含数据网格的行的高度设置为“*”修复了此问题。当数据网格不在自动调整为内容大小的行中时,通常会处理数据网格列中的换行文本

以下是结束代码:

<Grid>
   <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto" />
      <ColumnDefinition Width="*"/>
   </Grid.ColumnDefinitions>
   <Grid.RowDefinitions>
      <RowDefinition Height="Auto" />
      <RowDefinition Height="*" />
   </Grid.RowDefinitions>
   <!-- other controls in different parts of the data grid -->
   <DataGrid Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left"
      Margin="0,6,6,6" Name="dgMessages" VerticalAlignment="Top" 
      Background="DarkGray" HeadersVisibility="None"
      AlternatingRowBackground="Gainsboro" CanUserResizeColumns="False"
      CanUserResizeRows="False" CanUserSortColumns="False" 
      AutoGenerateColumns="false" BorderBrush="Black" HorizontalGridLinesBrush="{x:Null}"
      ItemsSource="{Binding Messages, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
      <DataGrid.Columns>
         <dg:DataGridTemplateColumn Width="*">
            <dg:DataGridTemplateColumn.CellTemplate>
               <DataTemplate>
                  <TextBlock Text="{Binding Value}" TextWrapping="WrapWithOverflow" Padding="5,5,5,5" />
               </DataTemplate>
            </dg:DataGridTemplateColumn.CellTemplate>
         </dg:DataGridTemplateColumn>
      </DataGrid.Columns>
   </DataGrid>
</Grid>


在浏览器中查看源代码,并将代码粘贴到此处,以便我们可以查看生成的HTML。我认为我不能这样做,因为这是一个WPF桌面项目,因此不使用浏览器。我环顾四周以确定没有发现任何生成的HTML。我误解你了吗?在浏览器中查看源代码,并将代码粘贴到此处,以便我们可以查看生成的HTML。我认为我不能这样做,因为这是一个WPF桌面项目,因此不使用浏览器。我环顾四周以确定没有发现任何生成的HTML。我误解你了吗?