Что не так с форматированием моей сетки? - PullRequest
0 голосов
/ 03 октября 2019

В моем приложении есть следующее окно:

<Grid Width="{Binding ActualWidth, 
          RelativeSource = {RelativeSource AncestorType = {x:Type Window}}}" 
      Height="{Binding ActualHeight, 
          RelativeSource ={RelativeSource AncestorType = {x:Type Window}}}">
        <Grid.RowDefinitions>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="20"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition Width="auto"></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <DataGrid Grid.Column="0" x:Name="dataGrid" VerticalAlignment="Stretch" CanUserAddRows="False" IsReadOnly="True"/>

        <DataGrid Grid.Column="2" x:Name="dataGrid2" VerticalAlignment="Stretch" CanUserAddRows="False" IsReadOnly="True"/>

        <GridSplitter Grid.Column="1" x:Name="gridSplitter" HorizontalAlignment="Center" VerticalAlignment="Stretch" Width="5"/>
    </Grid>
    <StatusBar Grid.Row="1" Height="20">
        <StatusBarItem x:Name="StatusBarInfo" Content="Offset:" HorizontalAlignment="Right" />
    </StatusBar>
</Grid>

В представлении конструктора все выглядит так, как ожидалось, с двумя массивами данных, разделенными gridSplitter, и строкой состояния в нижней части экрана. по какой-то причине при запуске приложения макет немного отличается, сетка, содержащая dataGrid, перекрывает строку состояния.

Это заставляет меня задуматься о том, что мои настройки экрана в Windows 10 вызывают у меня проблемы.

Это мое первое приложение WPF, я все еще учусь.

Ответы [ 2 ]

2 голосов
/ 03 октября 2019

Возможно, установка Width и Height корня Grid не позволит вам достичь цели. Я полагаю, что по умолчанию сетка будет занимать остальную часть (*) пространства окна, если вы не установите высоту строки и ширину столбца. Кроме того, вместо установки ширины и высоты первой сетки вы можете установить VerticalAlignment и HorizontalAlignment на "Stretch"

0 голосов
/ 03 октября 2019

Если у вас есть какие-либо данные внутри dataGrid, они могут растягиваться и перекрывать строку состояния. Если это проблема, попробуйте использовать:

<ScrollViewer> (data grid here) </ScrollViewer>
...