我无法弄清楚这个漏洞,所以我把它剥离到了最简单的版本,但仍然会发生。
这是我的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有一些我从未听说过的任意最大高度?
答案 0 :(得分:1)
弹出窗口确实有最大高度限制。在FlyoutPresenter styles and templates中,您可以找到FlyoutPresenter将101 | +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