74 Stimmen

wie kann ich Bildlaufleisten auf dem WPF Datagrid aktivieren?

Wenn ich das folgende Programm ausführe Northwind WPF Toolkit Datentabelle Code von dieser Artikel erhalte ich eine Datentabelle, aber es gibt keine Bildlaufleisten und daher kann der Benutzer nur einen Teil des Datengitters sehen. Ich verwende die neueste Version vom März 2009.

Was muss ich angeben, so dass die WPF Datagrid Scrollbars hat?

Ich habe versucht, die Datentabelle in einen ScrollViewer zu setzen, aber das hat nicht geholfen.

XAML:

<Window x:Class="TestDataGrid566.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
    Title="Window1" Height="600" Width="800">
    <StackPanel>
        <toolkit:DataGrid x:Name="TheDataGrid" AutoGenerateColumns="True"/>
    </StackPanel>
</Window>

code-behind:

using System.Linq;
using System.Windows;
using TestDataGrid566.Model;

namespace TestDataGrid566
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            NorthwindDataContext db = new NorthwindDataContext();
            var customers = from c in db.Customers
                            select c;
            TheDataGrid.ItemsSource = customers;
        }
    }
}

115voto

Kent Boogaart Punkte 170094

Legen Sie die DataGrid in einem Grid , DockPanel , ContentControl oder direkt in der Window . Eine vertikal orientierte StackPanel gibt seinen Kindern so viel vertikalen Platz, wie sie verlangen - auch wenn das bedeutet, dass es nicht mehr sichtbar ist.

62voto

Peter Darvas Punkte 639

WPF4

<DataGrid AutoGenerateColumns="True" Grid.Column="0" Grid.Row="0"
      ScrollViewer.CanContentScroll="True" 
      ScrollViewer.VerticalScrollBarVisibility="Auto"
      ScrollViewer.HorizontalScrollBarVisibility="Auto">
</DataGrid>

mit : <ColumnDefinition Width="350" /> & <RowDefinition Height="300" /> funktioniert gut.

Scrollbars werden nicht angezeigt bei <ColumnDefinition Width="Auto" /> & <RowDefinition Height="300" /> .

Funktioniert auch gut mit: <ColumnDefinition Width="*" /> & <RowDefinition Height="300" /> für den Fall, dass diese in eine äußere <Grid> .

25voto

Jay Punkte 1729

Wenn einer der übergeordneten Container RowDefinition Höhe eingestellt auf "Auto" auch Stopper für Scrollbars

Alternativ können Sie auch die Höhe "*" einstellen.

Das war in meinem Fall der Fall.

21voto

Alex Albu Punkte 643

Hinzufügen von MaxHeight y VerticalScrollBarVisibility="Auto" über die DataGrid mein Problem gelöst.

4voto

Bianca Punkte 41

Gitter mit definierter Höhe und Breite für Spalten und Zeilen hinzufügen. Dann hinzufügen ScrollViewer und fügen Sie darin das dataGrid hinzu.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X