2016-12-24 5 views
1

나는이 버그를 파악할 수 없으므로 나는 그것을 가장 단순한 버전으로 제거했다.UWP - 버튼 플라이 아웃이 어떻게 든 고정되어 있습니다.

이 내 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입니다.

당신이 볼 수 있듯이, 팝업은 분명히 창의 높이가되어야한다고 생각하지만, 어떤 이유로 어떤 지점에서 확장을 멈추고 스크롤바를 추가합니다.

여기에 표시되지 않는 항목이 있습니까? 아니면이 플라이 아웃에 들어 본 적이없는 임의의 최대 높이가 있습니까?

답변

1

플라이 아웃에는 최대 높이 제한이 있습니다. FlyoutPresenter styles and templates에서는 FlyoutPresenterFlyoutThemeMaxHeightMaxHeight 속성 집합이 찾을 수 있습니다

<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> 

당신은 MaxHeightPositiveInfinityFlyoutPresenter의를 다시 시도 할 수 있습니다 (XAML에서 간단히 "Infinity"으로 설정할 수 있습니다.) 다음과 같이 그리드가 창을 가로 질러 수직으로 펼쳐질 수 있어야합니다.

<Button x:Name="button1" VerticalAlignment="Top" Content="Button"> 
    <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" /> 
        <Setter Property="MaxHeight" Value="Infinity" /> 
       </Style> 
      </Flyout.FlyoutPresenterStyle> 
      <Grid Name="PopupGrid" Background="Aqua" /> 
     </Flyout> 
    </Button.Flyout> 
</Button>