【发布时间】:2016-04-12 02:43:25
【问题描述】:
当窗口太小而无法显示所有列时,我试图让我的 DataGrid 水平滚动。我正在使用网格来控制元素的定位。有人可以解释为什么没有出现滚动条以及如何修复它吗?如果可能的话,我更喜欢仅使用 XAML 的解决方案。
这是我的完整代码。随意批评你看到的任何奇怪的东西,因为我是 WPF 的新手。
<Window x:Class="FBLAM.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:FBLAM"
mc:Ignorable="d"
Title="MainWindow" Width="800" Height="600">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Menu Grid.Row="0" Grid.Column="0" IsMainMenu="True" Height="20" VerticalAlignment="Top">
Menu Goes Here
</Menu>
<Grid Grid.Row="1" Grid.Column="0" HorizontalAlignment="Center" Background="#FFF0F0F0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="1" Grid.Row="0" Orientation="Horizontal" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Button Content="Button1" HorizontalAlignment="Left" Padding="10,2" VerticalAlignment="Center"/>
<Button Content="Button2" HorizontalAlignment="Left" Padding="10,2" VerticalAlignment="Center" Margin="10,0,0,0"/>
</StackPanel>
<DataGrid
Grid.Column="1"
Grid.Row="1"
x:Name="MemberData"
AutoGenerateColumns="False"
IsReadOnly="False"
CanUserResizeColumns="True"
CanUserAddRows="True"
CanUserSortColumns="True"
ItemsSource="{Binding}"
SelectionMode="Single"
HeadersVisibility="Column"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
BorderThickness="0"
Margin="0"
GridLinesVisibility="Horizontal"
ScrollViewer.CanContentScroll="True"
ScrollViewer.HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding Id}" />
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" />
<DataGridTextColumn Header="School" Binding="{Binding School}" />
<DataGridTextColumn Header="State" Binding="{Binding State}" />
<DataGridHyperlinkColumn Header="Email" Binding="{Binding Email}" />
<DataGridTextColumn Header="Year Joined" Binding="{Binding YearJoined}" />
<DataGridTextColumn Header="Grade" Binding="{Binding Grade}" />
<DataGridCheckBoxColumn Header="Active" Binding="{Binding Active}" />
<DataGridTextColumn Header="Amount Owed" Binding="{Binding AmountOwed, StringFormat=C}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Grid>
【问题讨论】:
标签: c# wpf xaml gridview datagrid