WPF网格行高度不小于';与我输入的高度不匹配

WPF网格行高度不小于';与我输入的高度不匹配,wpf,grid,height,Wpf,Grid,Height,我一整天都在为这件事发愁。出于某种原因,当我在使用一些自定义控件时设置网格时,网格行的实际高度会发生变化,而不必使用我给定的高度值。我最初认为这是因为我在代码中加载了自定义控件,但即使我去掉了自定义控件,问题仍然存在。这是我为xaml准备的 <Window x:Class="Pokemon_Planner.PokePlan" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://s

我一整天都在为这件事发愁。出于某种原因,当我在使用一些自定义控件时设置网格时,网格行的实际高度会发生变化,而不必使用我给定的高度值。我最初认为这是因为我在代码中加载了自定义控件,但即使我去掉了自定义控件,问题仍然存在。这是我为xaml准备的

<Window x:Class="Pokemon_Planner.PokePlan"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="PokePlan" Height="600" Width="800">
<Grid x:Name="myGrid">

    <Grid.RowDefinitions>
        <RowDefinition Height="25" Name="row0"></RowDefinition>
        <RowDefinition Height="Auto" Name="row1"></RowDefinition>
        <RowDefinition Height="48" Name="row2"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <StackPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="0">
        <ComboBox Name="cmbSort" Width="100">
            <ComboBoxItem Content="Name"></ComboBoxItem>
            <ComboBoxItem Content="Type"></ComboBoxItem>
            <ComboBoxItem Content="Element"></ComboBoxItem>
            <ComboBoxItem Content="BP"></ComboBoxItem>
            <ComboBoxItem Content="Min Damage"></ComboBoxItem>
            <ComboBoxItem Content="Max Damage"></ComboBoxItem>
        </ComboBox>
        <Button Name="btnSort" Click="btnSort_Click">Sort</Button>
        <Button Name="btnRefresh" Click="btnRefresh_Click">Refresh</Button>
        <Button Name="btnFilter">Filter</Button>
    </StackPanel>
    <StackPanel Grid.Column="0" Grid.Row="2" Orientation="Horizontal" VerticalAlignment="Top" Name="stkMoveSet1">

    </StackPanel>
    <StackPanel Grid.Column="0" Grid.Row="3" Orientation="Horizontal" Name="stkMoveSet2">

    </StackPanel>
    <ScrollViewer Grid.Row="1" Grid.Column="1" Grid.RowSpan="6" Height="Auto" Name="scrollViewerMoves" >
        <StackPanel Grid.Row="1" Grid.Column="1" Grid.RowSpan="6" Name="moveStackPanel"></StackPanel>
    </ScrollViewer>
</Grid>

分类
刷新
滤器

设定为48的那一排仍然设定了这个高度,但“实际高度”是446,这仍然让我的网格变得一团糟。数字各不相同,我尝试了很多不同的组合,在设置数字和自动之间,但我似乎无法让这一个窗口正确运行。有什么想法吗?

您可能需要将“row2”网格行高度定义更改为“自动”,并将“scrollViewerMoves”scrollviewer的高度设置为48。Smth是这样的:

...
<RowDefinition Height="Auto" x:Name="row2"></RowDefinition>
...
<ScrollViewer Grid.Row="1" Grid.Column="1" Height = "48" Name="scrollViewerMoves" >
...
。。。
...
...
我想这应该能满足你的需要,
问候

非常感谢你,谢尔盖。这让我走上了正确的道路。scrollviewer不在第2行,所以我更改了第2行和第3行的stackpanels,它工作得很好!现在的问题似乎是scrollviewer,因为它使第1行变得巨大,而其他行都在控制之下。我试着改变它的大小,但没什么效果,然后我去掉了行间距,把东西排好了。除了scrollviewer本身。我希望scrollviewer选择范围从第1行到屏幕底部,但如果没有第2行,它在第2行启动时不可见。有什么解决办法吗?我想把scrollviewer的高度恢复到“自动”应该可以使它跨越多行,我想是这样的:…scrollviewer Grid.Row=“1”Grid.Column=“1”Grid.RowSpan=“6”height=“auto”。它必须在windows上工作,对我来说很好;解析pdf文件可能会有问题,但通常您会从gs收到一条错误消息,解释丢失或损坏的内容;你能把你的pdf文件上传到文件共享服务上吗?这样我就可以试着把它转换成很无聊的格式了,删除Height=“Auto”并将其保留为空白。解决了这个问题。谢谢你,祝你节日快乐!thnx,我想嵌套网格可以满足您的需要