Wpf 设置相对于可用空间的图元高度

Wpf 设置相对于可用空间的图元高度,wpf,xaml,Wpf,Xaml,“我的网格”当前定义了以下行: <RowDefinition Height="50" /> <RowDefinition Height="*" /> 不幸的是,即使使用ScrollViewer,我加载到其中的数据也会使窗口太“高”,并且会丢失屏幕底部的一些数据 为了解决这个问题,我想做一些类似于Height=“*-x”的事情,其中x是我想从*的任何值中减去的像素量 不幸的是,这不是有效的标记,那么我该怎么做呢?我不确定这是否是您想要的: <DockPanel&

“我的网格”当前定义了以下行:

<RowDefinition Height="50" />
<RowDefinition Height="*" />

不幸的是,即使使用
ScrollViewer
,我加载到其中的数据也会使窗口太“高”,并且会丢失屏幕底部的一些数据

为了解决这个问题,我想做一些类似于
Height=“*-x”
的事情,其中x是我想从
*
的任何值中减去的像素量


不幸的是,这不是有效的标记,那么我该怎么做呢?

我不确定这是否是您想要的:

<DockPanel>
    <Button DockPanel.Dock="Bottom" Content="Button" />

    <ScrollViewer>
        <Grid DockPanel.Dock="Top" Height="2000">
            <Grid.RowDefinitions>
                <RowDefinition Height="50" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>

            <TextBlock Text="Grid.Row=0" />

            <Rectangle Fill="Crimson"  Grid.Row="1" RadiusX="100" RadiusY="100" />
        </Grid>
    </ScrollViewer>
</DockPanel>


您是否尝试过设置
MaxHeight
?创建另一个高度为X的行定义,或将X添加到第一个行定义的高度?DockPanel和
按钮的作用是什么?它们有什么区别吗?按钮只是用来显示它从来不会独立于scrollviewer的高度隐藏。Dockpanel用于让Scrollviewer填满所有可用空间(不确定Scrollviewer是否已经为自己完成了这项工作)。