隐藏 WPF DataGrid 滚动条。

4

我是WPF的新手。我对DataGrid有一些不同的要求,因此我进行了以下转换,但我不想要任何滚动条,但它并没有被隐藏。我在这里使用了LayoutTransform,将行变为列,列变为行。

<DataGrid x:Name="fuelDataGrid" Width="200" Height="900" 
          AutoGenerateColumns="False"
          ItemsSource="{Binding Pump}"
          HorizontalAlignment="Left" FontSize="14"
          VerticalAlignment="Top" 
          HeadersVisibility="None"  
          CanUserReorderColumns="False" 
          CanUserResizeColumns="False" 
          CanUserResizeRows="False" 
          CanUserSortColumns="False" 
          Cursor="Hand" SelectionMode="Single" 
          HorizontalScrollBarVisibility="Disabled" 
          CanUserAddRows="False" 
          CanUserDeleteRows="False" 
          PreviewMouseLeftButtonUp="dataGrid2_PreviewMouseLeftButtonUp"  
          VerticalScrollBarVisibility="Disabled" 
          ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
          ScrollViewer.VerticalScrollBarVisibility="Disabled" 
          MouseDoubleClick="DataGrid_MouseDoubleClick" 
          TargetUpdated="DataGrid_OnTargetUpdated">

    <DataGrid.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" 
           Color="#FFCBCBCB"/>
    </DataGrid.Resources>

    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="LayoutTransform">
                <Setter.Value>
                    <TransformGroup>
                        <RotateTransform Angle="90"/>
                    </TransformGroup>
                </Setter.Value>
            </Setter>
            <Setter Property="Width" Value="65"/>
            <!--<Setter Property="Height" Value="30"/>-->
        </Style>
    </DataGrid.ColumnHeaderStyle>

    <DataGrid.LayoutTransform>
        <TransformGroup>
            <RotateTransform Angle="-90"/>
        </TransformGroup>
    </DataGrid.LayoutTransform>

    <DataGrid.CellStyle>
        <Style TargetType="{x:Type DataGridCell}">
            <Setter Property="LayoutTransform">
                <Setter.Value>
                    <TransformGroup>
                        <RotateTransform Angle="90"/>
                    </TransformGroup>
                </Setter.Value>
            </Setter>
            <Setter Property="Width" Value="100"/>
            <Setter Property="Foreground" Value="Black" />
            <!--<Setter Property="Height" Value="30"/>-->
        </Style>
    </DataGrid.CellStyle>

    <DataGrid.Columns>
        <!--    <DataGridTextColumn Header="Old Price" Binding="{Binding Row1Value}" /> -->
        <DataGridTemplateColumn Header="Old Price">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                 // Code here
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
        <DataGridTemplateColumn Header="Current Price">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                // Code here
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn> 
</DataGrid.Columns>

我尝试使用 Hidden,但是仍然没有作用。
VerticalScrollBarVisibility="Hidden" 
ScrollViewer.HorizontalScrollBarVisibility="Hidden" 
ScrollViewer.VerticalScrollBarVisibility="Hidden"
HorizontalScrollBarVisibility="Hidden"
2个回答

5
这个简单的测试用例给我展示了一个没有滚动条的数据网格:
<DataGrid
    HorizontalScrollBarVisibility="Hidden"
    VerticalScrollBarVisibility="Hidden"
    ItemsSource="{Binding Items}" />

它绑定到一个包含50个字符串的集合。前几个字符串是可见的,其余的超出了窗口范围。没有滚动条出现。也许可以简化测试用例,直到找到问题所在?
编辑:我尝试复制您的整个数据网格xaml,但仍无法重现该问题。当然,我必须删除调用未知代码后台方法的部分,并在您键入“// Code here”处的数据模板中替换为TextBlock。因此,要么我们的环境有所不同,要么导致问题的代码未包含在您的问题中。
请提供最简单的测试用例,以重现您所看到的问题,以便其他人可以帮助您解决它。

是的,你可以说它很简单。但是我在这里使用了“LayoutTransform”,我的行变成了列,列变成了行。 - Anchit Pancholi
添加布局转换并没有导致滚动条出现。请查看我的编辑。 - Xavier

0

我已经完成了这个任务,没有使用滚动视图,并且显示了完整的DataGrid。 您可以设置datagrid的高度属性。这将禁用或隐藏垂直滚动条。您将在代码后台设置此属性。通过设置宽度属性,水平滚动条将被禁用。

您将在构造函数中编写此代码,如下所示。

public Mainwindow(){
    datagrid.Height=Double.NaN;
    datagrid.Width=Double.NaN;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接