WPF数据网格在视图框中丢失了滚动条

时间:2013-10-17 15:36:56

标签: wpf c#-4.0 mvvm

我在网格中有一些Textblocks和一个Datagrid。 Datagrid垂直滚动条工作正常。但是当我将网格放在Viewbox中时,垂直滚动条消失了。以下是我的代码

<Window x:Class=MyProject.View.MyTest"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             WindowStartupLocation="CenterScreen"
             Title="{Binding FormTitle}" Height="500" Width="800" >

    <Window.InputBindings>
        <KeyBinding Key="F7" Command="{Binding PrintCommand}" />
    </Window.InputBindings>
    <Viewbox VerticalAlignment="Top" HorizontalAlignment="Left" Stretch="UniformToFill" >
        <Grid Height="Auto" Width="Auto" Name="rootGrid">
            <TextBlock Height="12" HorizontalAlignment="Left" Margin="12,12,0,0" Name="textBlock1" Text="Job ID:" VerticalAlignment="Top"  />
            <TextBlock Height="12" HorizontalAlignment="Left" Margin="12,28,0,0" Name="textBlock2" Text="Job Run Time:" VerticalAlignment="Top"/>
            <TextBlock Height="12" HorizontalAlignment="Left" Margin="12,45,0,0" Name="textBlock3" Text="Run Number:"  VerticalAlignment="Top" />
            <TextBlock Height="12" HorizontalAlignment="Left" Margin="12,61,0,0" Name="textBlock4" Text="User Name:" VerticalAlignment="Top" />
            <DataGrid CanUserAddRows="False" ItemsSource="{Binding ArchInfo}" AutoGenerateColumns="False"
              CanUserDeleteRows="False" CanUserReorderColumns="False" 
              CanUserSortColumns="True" GridLinesVisibility="All" 
              ColumnHeaderHeight ="40"

              Margin="5,124,5,0" IsReadOnly="True">
              <DataGrid.Columns>
                <DataGridTextColumn Header="Table Name"  Binding="{Binding Path=TableName,  UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTextColumn Header="Table Type"  Binding="{Binding Path=TableType,  UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTextColumn Header="Status"      Binding="{Binding Path=Status,     UpdateSourceTrigger=PropertyChanged}"/>
              </DataGrid.Columns>
            </DataGrid>
        </Grid>
    </Viewbox>
</Window>

如果我将以下内容添加到Datagrid,滚动条将显示但不起作用。

      ScrollViewer.CanContentScroll="True" 
      ScrollViewer.VerticalScrollBarVisibility="Visible"
      ScrollViewer.HorizontalScrollBarVisibility="Auto"

无论我做什么,我只能看到部分Datagrid行。 知道如何解决这个问题吗? 谢谢,

1 个答案:

答案 0 :(得分:2)

Andy的评论已经解决了这个问题。

设置Datagrid高度和Stretch =“Uniform”使它工作。见安迪的评论。