[英]c# wpf datagrid column width auto size add horizontal scroll if needed
我正在使用WPF進行項目,並且有一個數據網格。 在datagrid中,我有6列,並對其進行了編碼以使用和共享datagrid的所有寬度。 我的問題是,當一列的值足夠長於其標題寬度時,長文本只是將文本切出並僅顯示其寬度所基於的內容。 我想要發生的是為datagrid添加水平滾動,以便如果文本較長,則其標題的寬度將增加,因此,由於datagrid寬度除以其標題,因此將出現水平滾動。 請注意,其他標頭的寬度不應調整或受此更改影響,而應添加水平滾動條。 以下是我的DataGrid XAML代碼:
<DataGrid x:Name="accountsBalance_grd"
HorizontalAlignment="Left"
Margin="266,118,0,0"
VerticalAlignment="Top"
Height="498"
Width="836"
AreRowDetailsFrozen="True"
AutoGenerateColumns="False"
CanUserReorderColumns="False"
CanUserResizeColumns="False"
CanUserResizeRows="False"
CanUserSortColumns="False"
CanUserAddRows="False"
BorderBrush="Blue"
Background="White"
Foreground="Blue"
BorderThickness="2"
HorizontalGridLinesBrush="Black"
Loaded="accountsBalance_grd_Loaded">
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="FontSize"
Value="20" />
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="Name"
Width="150"
Binding="{Binding accountBalanceName}"
IsReadOnly="True" />
<DataGridTextColumn Header="Total Balance"
Width="150"
Binding="{Binding accountBalanceTotal}"
IsReadOnly="True" />
<DataGridTextColumn Header="Amount"
Width="120"
Binding="{Binding accountBalanceAmount}"
IsReadOnly="True" />
<DataGridTextColumn Header="Transaction"
Width="160"
Binding="{Binding accountBalanceTransaction}"
IsReadOnly="True" />
<DataGridTextColumn Header="Date"
Width="*"
Binding="{Binding accountBalanceDate}"
IsReadOnly="True" />
<DataGridTextColumn Header="Incharge"
Width="*"
Binding="{Binding accountBalanceAdmin}"
IsReadOnly="True" />
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="FontSize"
Value="15" />
<Setter Property="FontFamily"
Value="Arial" />
<Setter Property="FontWeight"
Value="Bold" />
<Setter Property="Foreground"
Value="Black" />
</Style>
</DataGrid.RowStyle>
</DataGrid>
提前致謝。
可以使用DataGridTemplateColumn代替DataGridTextColumn,如下所示:
<DataGridTemplateColumn Header="Transaction" Width="160">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">
<TextBlock Text="{Binding accountBalanceTransaction}"></TextBlock>
</ScrollViewer>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.