【问题标题】:c# wpf datagrid column width auto size add horizontal scroll if neededc# wpf datagrid column width auto size 如果需要添加水平滚动
【发布时间】:2018-01-04 15:30:00
【问题描述】:

我正在使用 WPF 开发一个项目,并且我有一个数据网格。在数据网格中,我有 6 列,我对其进行了编码以使用和共享数据网格的所有宽度。我的问题是,当一列的值对于其标题宽度而言足够长时,长文本只会将文本剪掉,并根据其宽度显示它可以具有的内容。我想要发生的是让数据网格添加水平滚动,这样如果文本很长,其标题的宽度会增加,因此由于数据网格宽度除以其标题,因此会出现水平滚动。请注意,其他标题的宽度不应调整或受此更改影响,而是应添加水平滚动。 下面是我的 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>

提前致谢。

【问题讨论】:

    标签: c# wpf datagrid


    【解决方案1】:

    您可以使用 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>
    

    【讨论】:

      猜你喜欢
      • 2012-06-27
      • 1970-01-01
      • 2023-03-22
      • 2013-08-25
      • 1970-01-01
      • 2012-12-03
      • 2018-03-09
      • 2014-08-16
      • 2011-01-26
      相关资源
      最近更新 更多