UWP - 按钮弹出按钮以某种方式锁定高度

时间:2016-12-24 05:27:46

标签: c# xaml grid uwp flyout

我无法弄清楚这个漏洞,所以我把它剥离到了最简单的版本,但仍然会发生。

这是我的XAML代码:

<Grid>
    <Button x:Name="button1" Content="Button" VerticalAlignment="Top">
        <Button.Flyout>
            <Flyout Placement="Right">
                <Flyout.FlyoutPresenterStyle>
                    <Style TargetType="FlyoutPresenter">
                        <Setter Property="Padding" Value="0"/>
                        <Setter Property="Margin" Value="0"/>
                        <Setter Property="BorderThickness" Value="0"/>
                    </Style>
                </Flyout.FlyoutPresenterStyle>
                <Grid Name="PopupGrid" Background="Aqua"/>
            </Flyout>
        </Button.Flyout>
    </Button>
</Grid>

然后我在该页面上有一个事件:

private void Page_SizeChanged(object sender, SizeChangedEventArgs e)
{
    PopupGrid.Height = Window.Current.Bounds.Height;
}

因此该代码的预期行为如下:按下按钮后,将打开一个弹出窗口,该窗口在窗口上垂直拉伸。这完美无瑕,直到我让我的窗户太高。 Here's我正在描述的GIF。

正如你所看到的,弹出窗口显然认为它应该是窗口的高度,但由于某种原因,它只是在某个时刻停止扩展,并添加一个滚动条。

我在这里看不到什么?或者这些Flyout有一些我从未听说过的任意最大高度?

1 个答案:

答案 0 :(得分:1)

弹出窗口确实有最大高度限制。在FlyoutPresenter styles and templates中,您可以找到FlyoutPresenter101 | +9038302873 | John | 200 102 | +9023757583 | Jack | 500 属性设置为MaxHeight

FlyoutThemeMaxHeight

<Setter Property="MinWidth" Value="{ThemeResource FlyoutThemeMinWidth}"/> <Setter Property="MaxWidth" Value="{ThemeResource FlyoutThemeMaxWidth}"/> <Setter Property="MinHeight" Value="{ThemeResource FlyoutThemeMinHeight}"/> <Setter Property="MaxHeight" Value="{ThemeResource FlyoutThemeMaxHeight}"/> 是一个主题资源代表FlyoutThemeMaxHeight

758

您可以尝试将<x:Double x:Key="FlyoutThemeMaxHeight">758</x:Double> 的{​​{1}}重置为PositiveInfinity(可以在XAML中将其设置为“ Infinity ”),如下所示网格应该能够在窗口上垂直拉伸。

FlyoutPresenter