【问题标题】:Resizing datagrid column with CanUserResize="True" is not working in WPF使用 CanUserResize="True" 调整数据网格列的大小在 WPF 中不起作用
【发布时间】:2014-12-05 12:54:09
【问题描述】:

我已将 CanUserResize="True" 用于数据网格列,但在将鼠标悬停在列标题上时无法调整大小。

<DataGrid x:Name="ScenarioExecutables" AutoGenerateColumns="False" CanUserAddRows="False" RowHeaderWidth="0" Margin="10" FontSize="14"
                Grid.Row="1" CanUserResizeColumns="True">
    <DataGrid.Columns>
         <DataGridTextColumn Header="Scenario" Width="1*" IsReadOnly="True" CanUserResize="True">
               <DataGridTextColumn.ElementStyle>
                    <Style TargetType="TextBlock">
                        <Setter Property="TextWrapping" Value="Wrap"/>
                    </Style>
               </DataGridTextColumn.ElementStyle>
         </DataGridTextColumn>
          <DataGridTextColumn Header="Description"  Width="2*" CanUserResize="True"/>
    </DataGrid.Columns>
</DataGrid>

【问题讨论】:

  • 我已经测试了这段代码,它可以工作。我可以调整第一列的大小,如果网格未设置为占用父容器的全宽,则只能调整第二列的大小。你能详细说明问题吗?
  • 它工作吗..?即使悬停时不显示调整大小图标()本身,我也无法调整第一列本身的大小。
  • 您可以在新的 WPF 项目的窗口中发布您的代码吗?这样就不会有干扰样式或其他代码。
  • 重新排序对于相同的代码工作正常。单独调整大小是行不通的。有什么办法可以停止覆盖样式..?
  • 我在网格中有这个数据网格会产生这个问题吗?如果是这样,重新排序应该不起作用。

标签: wpf xaml wpfdatagrid


【解决方案1】:

由于我更改了数据网格列标题的模板,因此调整大小将无法正常工作

所以添加此代码调整大小将起作用..

<Thumb x:Name="PART_RightHeaderGripper" Grid.Column="1"
                                        HorizontalAlignment="Right"
                                        Width="2" BorderThickness="1"
                                        BorderBrush="{Binding VerticalGridLinesBrush, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}"
                                        Cursor="SizeWE"/>

【讨论】:

    猜你喜欢
    • 2015-07-19
    • 1970-01-01
    • 2012-06-24
    • 2017-02-26
    • 2012-07-03
    • 2021-12-23
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多