【问题标题】:WPF datagrid shrinking columns when usercontrol width is stretch当用户控件宽度被拉伸时,WPF数据网格收缩列
【发布时间】:2019-01-15 17:54:51
【问题描述】:

我正在尝试将数据网格添加到主控件宽度设置为拉伸的 UserControl。控件被添加到主面板上的 StackPanel 中,我希望控件的宽度可以拉伸。

我的数据网格设置了宽度,但除非我在用户控件上定义宽度,否则所有列都会缩小到大约 10 像素。

<Expander Header="Issues" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Margin="4,86,4,4" VerticalAlignment="Stretch" IsExpanded="False">
    <Grid Background="#FFE5E5E5" HorizontalAlignment="Stretch" Width="Auto">
        <DataGrid x:Name="dg_issues" CanUserResizeRows="False" CanUserReorderColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserSortColumns="False" CanUserResizeColumns="True" HorizontalAlignment="Stretch" AutoGenerateColumns="False" HeadersVisibility="Column" SelectionMode="Single">
             <DataGrid.Columns>
                 <DataGridTextColumn Header="ID" Binding="{Binding Key}" Width="60"/>
                 <DataGridTextColumn Header="Status" Binding="{Binding Status}" Width="60"/>
                 <DataGridTextColumn Header="Summary" Binding="{Binding Summary}" Width="*"/>
                <DataGridTextColumn Header="Time Spent" Binding="{Binding TimeSpent}" Width="70"/>
                <DataGridTextColumn Header="Remaining" Binding="{Binding Remaining}" Width="70"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Expander>

【问题讨论】:

  • 如果您将 ColumnDefinition 添加到 Grid 的 Width="*" 怎么办?
  • 没有做任何改变,但感谢您的想法。不知道为什么会这样。以前写过的所有 WPF 工具都没有见过这种情况
  • 是否有机会发布其余代码以便我重现?
  • 原来这是由 ScrollViewer 引起的。将水平滚动条设置为禁用,问题就消失了。

标签: c# wpf


【解决方案1】:

原来在带有水平滚动条的 ScrollViewer 中包装数据网格会导致此问题。

我发现这个问题让我找到了解决方案,禁用单杠,因为我不需要它。 WPF ScrollViewer around DataGrid affects column width

<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">

【讨论】:

    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 2018-01-31
    • 2011-07-06
    • 2011-06-18
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    相关资源
    最近更新 更多