2017-01-12 58 views
0

美好的一天,在WPF DataGrid中的滾動不起作用

我有一個WPF DataGrid顯示一個大的DataTable的內容。該表比屏幕大得多,因此用戶與此表交互需要滾動條才能看到所有列和行。 正如你可以看到圖片1垂直滾動條是可見的,但禁用,而水平滾動條是不可見的。

我怎樣才能讓滾動條工作?

數據網格經由數據一些用戶交互之後結合到DataTable填充:

this.topPhrases.DataContext = loadedValues.DefaultView; 

其中topPhrases是DataGrind和laodedValues一個DataTable

這是數據網格的XAML代碼:

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

所述GUI元素的層次結構是: 窗口 - >網格狀> WrapPanel-> ContentControl->網格狀>數據網格

我嘗試了很多事情,我發現在互聯網上,如: how can I enable scrollbars on the WPF Datagrid? 但迄今爲止沒有任何建議工作。

+0

看看它是如何工作的,而不在於多層次的佈局,例如把DataGrid直接放到最頂層的Grid中。 – Clemens

+0

'Grid.Row'的大小是多少?只有當DataGrid的高度小於父控件的高度時,纔會顯示滾動條,在本例中爲'Grid.Row'。你可以設置例如''。你的'DataGrid'可能比這個更大,現在你只是看不到整個'DataGrid'。嘗試把'DataGrid.Height =「50」'或其他小東西。看看會發生什麼。 – daidai

+0

@daidai設置一個固定的高度到RowDefinition使水平和垂直滾動條的工作。 但我真正想要的是將DataGrid不是有一個固定的大小,但在主窗口的大小(減去工具欄在課程頂部的高度) –

回答

0

設置一個固定的高度到RowDefinition使水平和垂直滾動條的工作。但我真正想要的是將DataGrid不是有一個固定的大小,但在主窗口的大小(減去工具欄在課程頂部的高度)

設置第一RowDefinition的高度,以汽車,第二個*,例如:

<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> 

另外請確保您不使用任何StackPanels。請參考我的答案這裏瞭解更多信息爲什麼:

Horizontal scroll for stackpanel doesn't work

如果您需要在此進一步的幫助,我建議您發佈窗口的整個XAML標記。

+0

感謝您answer.I試圖用汽車,您的建議,但*它導致了與我迄今爲止一樣的行爲。也許我還需要一提的是,我不希望有主窗口固定大小。例如: - 如果用戶進行全屏幕的表應該在大小 –

+0

嘗試增加以去除WrapPanel或許也是ContentControl中。再次,請如果您需要任何進一步的幫助提供您的問題的完整重複的樣品。 – mm8