WPF框架 - 大小到内容

时间:2011-10-05 15:41:55

标签: wpf xaml layout

我一直很难让WPF Frame控件调整大小到它的内容高度(HTML)。

(编辑)HTML内容为500px,我期望第一行占据此高度,但帧被剪裁为150px。

我在这个主题上做了很多改动:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>

    <Frame Grid.ColumnSpan="2"
            VerticalAlignment="Bottom"
            HorizontalContentAlignment="Stretch" VerticalContentAlignment="Top"
            NavigationUIVisibility="Hidden"
            Source="..\My Web Sites\test.html" />

    <Button Grid.Row="1"
            Width="160" Height="50"                 
            HorizontalAlignment="Center" VerticalAlignment="Center"
            Content="Book Todays Events" />

    <DockPanel Grid.Row="1" Grid.Column="1"
                HorizontalAlignment="Center">
        <Button Width="160" Height="50"
                DockPanel.Dock="Bottom"
                HorizontalAlignment="Right"
                Content="Select Date" />
        <Border Width="350"
                HorizontalAlignment="Center"
                Background="Gray">
            <TextBlock Text="Calendar" />
        </Border>
    </DockPanel>
</Grid>

我尝试使用500px的内容更换ContentControl的Frame,但是我不确定问题是什么......

HTML是一个静态高度,并且不会在运行时更改,但客户端将能够更改它,因此我不想定义静态高度或黑客入侵HTML以查找高度。

1 个答案:

答案 0 :(得分:1)

当尺寸为自动时,您如何预期高度会调整?自动意味着它将根据内容的大小进行调整。如果HTML是静态高度,那么该行将是静态高度。这是你得到的行为吗?如果您希望每行获得屏幕高度的一半,请使用*。