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。我误解你了吗?