项目高度相对于带有*WPF XAML的实际行高度

本文关键字:高度 XAML 相对于 项目 WPF | 更新日期: 2023-09-27 18:30:04

我有以下XAML

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpfApplication3="clr-namespace:WpfApplication3"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="60*"/>
            <RowDefinition Height="147*"/>
            <RowDefinition Height="112*"/>
        </Grid.RowDefinitions>
        <TabControl Grid.Row="1">
            <TabItem Header="Match Bets" >
                <StackPanel Margin="15" Orientation="Vertical" Height="Auto" Width="Auto" >
                    <Label Content="My Header"/>
                    <DataGrid 
                        Height="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="Auto">
                        <DataGrid.Columns>
                            <DataGridTextColumn  IsReadOnly="False" Binding="{Binding Subject}" Header="Original A"  Width="Auto" />
                            <DataGridTextColumn  IsReadOnly="False" Binding="{Binding PriceOriginalSelectionB}" Header="Original B"  Width="Auto" />
                            <DataGridTextColumn  IsReadOnly="False" Binding="{Binding PriceDerivedSelectionA}" Header="Derived A"  Width="Auto" />
                            <DataGridTextColumn  IsReadOnly="False" Binding="{Binding PriceDerivedSelectionB}" Header="Derived B"  Width="Auto" />
                        </DataGrid.Columns>
                        <wpfApplication3:Dummy Subject="Subject 1" Body="Body 1" />
                        <wpfApplication3:Dummy Subject="Subject 2" Body="Body 2" />
                        <wpfApplication3:Dummy Subject="Subject 2" Body="Body 2" />
                        <wpfApplication3:Dummy Subject="Subject 2" Body="Body 2" />
                        <wpfApplication3:Dummy Subject="Subject 2" Body="Body 2" />
                        <wpfApplication3:Dummy Subject="Subject 2" Body="Body 2" />
                    </DataGrid>
                </StackPanel>
            </TabItem>
        </TabControl>
        <DataGrid HorizontalAlignment="Stretch" Margin="5" Grid.Row="2" VerticalAlignment="Stretch" Height="Auto" Width="Auto" />
    </Grid>
</Window>

我希望我的数据网格(位于堆栈面板内)只增长到它所在行的大小以下,但堆栈面板似乎允许它增长到它想要的任何大小。在没有明确设置堆栈面板高度的情况下,我是否可以这样做。或者我可以将堆叠面板的高度设置为略小于行的星形*高度。

如果我删除数据网格中的stackpanel,这很好,但我需要stackpanel在数据网格上方和下方添加其他内容。

项目高度相对于带有*WPF XAML的实际行高度

不要设置DataGrid的Height,而是将VerticalAlign设置为Stretch,并使用5px的上/下边距。

使用网格。StackPanel的行为不同,网格应该允许你想要的"增长"。