itsource

WPF 데이터 그리드에서 스크롤 막대를 활성화하려면 어떻게 해야 합니까?

mycopycode 2023. 5. 17. 22:58
반응형

WPF 데이터 그리드에서 스크롤 막대를 활성화하려면 어떻게 해야 합니까?

문서에서 다음 Northwind WPF Toolkit Datagrid 코드를 실행하면 데이터 그리드가 표시되지만 스크롤 바가 없으므로 사용자는 데이터 그리드의 일부만 볼 수 있습니다.저는 2009년 3월 최신 버전을 사용하고 있습니다.

WPF 데이터 그리드에 스크롤 막대가 있으려면 무엇을 지정해야 합니까?

Scroll Viewer에 데이터 그리드를 넣으려고 했지만 도움이 되지 않았습니다.

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>

코드백:

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

집어넣어요DataGrid순식간에Grid,DockPanel,ContentControl또는 직접적으로.Window수직 지향적StackPanel아이들이 요청하는 수직 공간은 무엇이든 제공합니다. 설령 그것이 시야에서 벗어나더라도 말입니다.

WPF4

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

포함:<ColumnDefinition Width="350" />&<RowDefinition Height="300" />잘 작동합니다.

스크롤 막대가 표시되지 않음<ColumnDefinition Width="Auto" />&<RowDefinition Height="300" />.

다음과 같은 경우에도 잘 작동합니다.<ColumnDefinition Width="*" />&<RowDefinition Height="300" />이것이 외부에 중첩된 경우.<Grid>.

상위 컨테이너 중 하나라도 있는 경우RowDefinition높이 설정:"Auto"스크롤 막대에 대한 중지 도구

또는 높이를 "*"로 설정할 수 있습니다.

제 경우에도 그랬었죠

추가 중MaxHeight그리고.VerticalScrollBarVisibility="Auto"에서DataGrid내 문제를 해결했습니다.

열 및 행에 대해 높이와 너비가 정의된 그리드를 추가합니다.그 다음 추가ScrollViewer그 안에 dataGrid를 추가합니다.

내 경우에는 설정해야 했습니다.MaxHeight및 대체IsEnabled="False"타고IsReadOnly="True"

이것은 저에게 효과가 있었습니다.*를 행 높이로 사용하는 것이 중요합니다.

<Grid x:Name="grid">
        <Grid.RowDefinitions>
            <RowDefinition Height="60"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="10"/>
        </Grid.RowDefinitions>

        <TabControl  Grid.Row="1" x:Name="tabItem">
                <TabItem x:Name="ta" 
                        Header="List of all Clients">
                        <DataGrid Name="clientsgrid" AutoGenerateColumns="True" Margin="2" 
                         ></DataGrid>
                </TabItem>
        </TabControl>
    
    </Grid>

언급URL : https://stackoverflow.com/questions/673516/how-can-i-enable-scrollbars-on-the-wpf-datagrid

반응형