我是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"
答案 0 :(得分:2)
这个简单的测试用例为我提供了一个没有滚动条的数据网格:
<DataGrid
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden"
ItemsSource="{Binding Items}" />
它绑定到50个字符串的集合。前几个是可见的,其余的超出了窗口的范围。没有滚动条出现。也许在您发现问题之前尝试简化测试用例?
编辑:我尝试复制整个数据网格xaml但仍然无法重现该问题。当然,我必须删除调用未知代码隐藏方法的部分,并在数据模板中替换了TextBlock
,其中键入了“// Code here”。因此,要么我们的环境有所不同,要么导致问题的代码不包含在您的问题中。
请包含最简单的测试用例,以重现您所看到的问题,以便有人可以帮助您解决问题。
答案 1 :(得分:0)
我在没有滚动视图的情况下完成了此操作,同时显示了完整的DataGrid。 您可以设置datagrid的height属性。它会禁用或隐藏垂直滚动条。您将在后面的代码上设置此属性。通过设置width属性,将禁用水平滚动条。
您将在构造函数中编写此代码。
public Mainwindow(){
datagrid.Height=Double.NaN;
datagrid.Width=Double.NaN;
}