我的布局与主窗口的调整一起流动。我面临的问题是,如你所见,数据网格超出了屏幕。如果你最大化窗口,数据网格将随着窗口的调整而重新调整大小,但仍然会超出屏幕。我该如何使其保持与父级网格的20像素边距?
<Grid>
<StackPanel Orientation="Vertical">
<TextBox Height="170" Name="txtSQL" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap" Margin="20"/>
<Button Content="Run!" Height="23" HorizontalAlignment="Left" Name="btnRun" VerticalAlignment="Top" Margin="20,0,0,0" Width="75" Click="btnRun_Click" />
<Grid>
<my:DataGrid Name="dgResults" VerticalAlignment="Top" Margin="20" />
</Grid>
</StackPanel>
</Grid>
更新:
为了更加具体,我想要实现的效果是:
当窗口首次加载时,您将看到一个空白的数据网格,高度只有约15个像素。当您运行查询时,它将通过重新分配itemssource来填充数据网格。目前,如果数据超过窗口大小,它会超出屏幕底部。我需要它仅扩展到窗口底部,然后启用滚动条。我相信我可以通过将其包装在scrollviewer中来实现这一点。但是,当窗口调整大小时,数据网格也需要随之调整大小。
我想知道是否设置可能与此有关。该表单实际上是在框架中显示的wpf页面。
更新:
<Page x:Class="Hold_Database___Prototype_1.Views.SQL"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="304" d:DesignWidth="732"
Title="SQL" xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit" AllowDrop="True">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="23" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBox Height="170" Name="txtSQL" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap" Margin="20" Grid.Row="0"/>
<Button Content="Run!" Height="23" HorizontalAlignment="Left" Name="btnRun" VerticalAlignment="Top"
Margin="20,0,0,0" Width="75" Grid.Row="1" Click="btnRun_Click" />
<DockPanel Grid.Row="2">
<my:DataGrid Name="dgResults" Margin="20" />
</DockPanel>
</Grid>
</Page>