Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF数据网格中的滚动条不工作_C#_Wpf - Fatal编程技术网

C# WPF数据网格中的滚动条不工作

C# WPF数据网格中的滚动条不工作,c#,wpf,C#,Wpf,你好 我有一个WPF数据网格,显示了一个大数据表的内容。此表比屏幕大得多,因此与此表交互的用户需要滚动条才能看到所有列和行。 如图所示,垂直滚动条可见,但已禁用,而水平滚动条根本不可见 如何使滚动条工作 在一些用户交互之后,通过数据绑定到DataTable填充DataGrid: this.topPhrases.DataContext = loadedValues.DefaultView; 其中topPhrases是DataGrind,laodedValues是DataTable 这是DataG

你好

我有一个WPF数据网格,显示了一个大数据表的内容。此表比屏幕大得多,因此与此表交互的用户需要滚动条才能看到所有列和行。 如图所示,垂直滚动条可见,但已禁用,而水平滚动条根本不可见

如何使滚动条工作

在一些用户交互之后,通过数据绑定到DataTable填充DataGrid:

this.topPhrases.DataContext = loadedValues.DefaultView;
其中topPhrases是DataGrind,laodedValues是DataTable

这是DataGrid的xaml代码:

    <DataGrid Name="topPhrases" Grid.Row="1"  Margin="10,0"  VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" ItemsSource="{Binding}">
    </DataGrid>

GUI元素的层次结构包括: 窗口->网格->包装->内容控制->网格->数据网格

我在网上找到了很多东西,比如: 但迄今为止,没有任何建议奏效

在RowDefinition中设置固定高度可以使水平和垂直滚动条都工作。但我真正想要的不是DataGrid的固定大小,而是主窗口的大小(当然减去顶部工具栏的高度)

将第一行定义的高度设置为自动,第二行定义的高度设置为*,例如:

<Window x:Class="WpfApplication1.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:WpfApplication1"
        mc:Ignorable="d"
        Title="MainWindow" Height="300" Width="300">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <ToolBar />
        <DataGrid Grid.Row="1" />
    </Grid>
</Window>

还要确保不要使用任何StackPanel。有关更多信息,请参阅我的回答,原因如下:

如果您在这方面需要任何进一步的帮助,我建议您发布窗口的整个XAML标记

在RowDefinition中设置固定高度可以使水平和垂直滚动条都工作。但我真正想要的不是DataGrid的固定大小,而是主窗口的大小(当然减去顶部工具栏的高度)

将第一行定义的高度设置为自动,第二行定义的高度设置为*,例如:

<Window x:Class="WpfApplication1.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:WpfApplication1"
        mc:Ignorable="d"
        Title="MainWindow" Height="300" Width="300">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <ToolBar />
        <DataGrid Grid.Row="1" />
    </Grid>
</Window>

还要确保不要使用任何StackPanel。有关更多信息,请参阅我的回答,原因如下:


如果您在这方面需要任何进一步的帮助,我建议您发布窗口的整个XAML标记。

查看它在没有奇怪的布局层次结构的情况下是如何工作的,例如,将DataGrid直接放入顶级网格。
网格。行的大小是多少?只有当
DataGrid
的高度小于父控件时,才会显示滚动条,在本例中为
Grid.Row
。您可以设置例如
。您的
DataGrid
可能比这个还要大,现在您看不到整个
DataGrid
。尝试放置
DataGrid.Height=“50”
或一些小东西。看看会发生什么。@daidai在RowDefinition中设置一个固定的高度可以使水平和垂直滚动条都工作。但是我真正想要的是DataGrid不是一个固定的大小,而是主窗口的大小(当然减去顶部工具栏的高度),看看它在没有奇怪的布局层次结构的情况下是如何工作的,例如,将DataGrid直接放在顶层网格中。
网格。行的大小是多少?只有当
DataGrid
的高度小于父控件时,才会显示滚动条,在本例中为
Grid.Row
。您可以设置例如
。您的
DataGrid
可能比这个还要大,现在您看不到整个
DataGrid
。尝试放置
DataGrid.Height=“50”
或一些小东西。看看会发生什么。@daidai在RowDefinition中设置一个固定的高度可以使水平和垂直滚动条都工作。但是我真正想要的是DataGrid不是一个固定的大小,而是主窗口的大小(当然减去顶部工具栏的高度),谢谢你的回答。我尝试了你的建议,使用Auto和*但是它导致了与我到目前为止相同的行为。也许我还需要提一下,我不希望主窗口有一个固定的大小。例如:如果用户使其全屏显示,则表格的大小应增加,以删除包装,可能还包括ContentControl。同样,如果您需要任何进一步的帮助,请提供您问题的完整可复制样本。感谢您的回答。我尝试了Auto和*的建议,但它导致了与我到目前为止相同的行为。也许我还需要提一下,我不希望主窗口有一个固定的大小。例如:如果用户使其全屏显示,则表格的大小应增加,以删除包装,可能还包括ContentControl。同样,如果您需要任何进一步的帮助,请提供您的问题的完整可复制样本。