首页 > 解决方案 > 额外的列仍然显示在 Datagrid 中?

问题描述

我似乎无法摆脱这个 Datagrid 中额外的“列”......不太知道我做错了什么?

<StackPanel Margin="5" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                        <Grid Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                            <ScrollViewer VerticalScrollBarVisibility="Auto" 
                                                          HorizontalScrollBarVisibility="Hidden" 
                                                          CanContentScroll="True"
                                                          utils:TopMouseScrollPriorityBehavior.TopMouseScrollPriority="True">
                                                <DataGrid AutoGenerateColumns="False" Name="SDataGrid" 
                                                              Grid.Row="1" RowHeaderWidth="0" 
                                                              HorizontalAlignment="Stretch" 
                                                              VerticalAlignment="Stretch"
                                                              ScrollViewer.CanContentScroll="True" 
                                                              ScrollViewer.HorizontalScrollBarVisibility="Hidden" 
                                                              ColumnHeaderStyle="{DynamicResource HeaderStyle}">
                                                    <DataGrid.Columns>
                                                        <DataGridTextColumn Header="" MinWidth="40" x:Name="SId" />
                                                        <DataGridTextColumn Header="Name" MinWidth="100" x:Name="SName" />
                                                        <DataGridTextColumn Header="Colour" Width="*" x:Name="SColour" />
                                                    </DataGrid.Columns>
                                                </DataGrid>
                                            </ScrollViewer>
                                        </Grid>
                                    </StackPanel>


<Style x:Key="HeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
    <Setter Property="Background" Value="{StaticResource Polour}" />
    <Setter Property="Foreground" Value="{StaticResource Solour}" />
    <Setter Property="BorderBrush" Value="{StaticResource Solour}" />
    <Setter Property="BorderThickness" Value="1" />
    <Setter Property="SnapsToDevicePixels" Value="True" />
    <Setter Property="FontFamily" Value="{StaticResource Gott}"/>
    <Setter Property="HorizontalAlignment" Value="Stretch"/>
    <Setter Property="MinWidth" Value="0" />
    <Setter Property="MinHeight" Value="30" />
    <Setter Property="Cursor" Value="Hand" />
</Style>

出于某种原因,我只是无法让标题末尾的一点点消失,最后一个“颜色”列一直延伸。我希望它水平拉伸......当它居中时不会出现这个问题......

标签: c#wpfxaml

解决方案


将设置 ScrollViewer Horizo​​ntalScrollBarVisibility="Disabled" 而不是 "Hidden" 工作?

    <StackPanel Margin="5" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <Grid Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
            <ScrollViewer VerticalScrollBarVisibility="Auto" 
                              HorizontalScrollBarVisibility="Disabled"
                              CanContentScroll="True">
                <DataGrid AutoGenerateColumns="False" Name="SDataGrid"
                              Grid.Row="1" RowHeaderWidth="0"
                              HorizontalAlignment="Stretch"
                              VerticalAlignment="Stretch"
                              ScrollViewer.CanContentScroll="True"
                              ScrollViewer.HorizontalScrollBarVisibility="Hidden"
                              ColumnHeaderStyle="{DynamicResource HeaderStyle}">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="" MinWidth="40" x:Name="SId" />
                        <DataGridTextColumn Header="Name" MinWidth="100" x:Name="SName" />
                        <DataGridTextColumn Header="Colour" Width="*" x:Name="SColour" />
                    </DataGrid.Columns>
                </DataGrid>
            </ScrollViewer>
        </Grid>
    </StackPanel>

推荐阅读