2017-08-23 9 views
0

UWPのMenyFlyoutの実際の幅と高さを取得する方法はありますか? UWPのMenuFlyoutの実際の幅と高さを取得

私はこのようにあなたは、たとえば、(ちなみに、非常に便利) MinWidthを設定できることがわかった。

MenuFlyout m = this as MenuFlyout; 
Style s = new Windows.UI.Xaml.Style { TargetType = typeof(MenuFlyoutPresenter) }; 
s.Setters.Add(new Setter(MenuFlyoutPresenter.MinWidthProperty, _minWidth + "")); 
m.MenuFlyoutPresenterStyle = s; 

私はただ単に幅と高さを照会する方法を見つけることができません。

+0

あなたは*コンテンツ内の高さと幅*フライアウトの制御を定義する必要があります。 –

+0

フライアウトは一度も使用していませんが、FrameworkElementを取得し、ActualWidthまたはActualHeightが変更されたときに発生するSizeChangedイベントを購読する方法が必要です。 –

答えて

1

UWPのMenyFlyoutの実際の幅と高さを取得できないようです。

通常、XAMLまたはコードのいずれかで直接MenuFlyoutPresenterを直接使用することはありません。代わりに、MenuFlyoutPresenterタイプを、MenuFlyout.MenuFlyoutPresenterStyleプロパティーに使用するスタイルのTargetTypeとして参照します。

詳細については、MenuFlyoutPresenterを参照してください。

MenuFlyoutPresenter.ActualWidthプロパティを使用して実際の幅を取得することはできません。

MenuFlyoutの実際の幅はMenuFlyoutPresenterMenuFlyoutの内容の幅のMinWidthMaxWidthに依存しています。

実際の幅と高さをページに合わせるには、MinWidthMaxWidthMenuFlyoutPresenterに設定する必要があります。コンテンツの幅が変わっても、MenuFlyoutはページには大きすぎたり小さすぎたりすることはできません。例えば

<MenuFlyout x:Name="MyMenuFlyout" > 
    <MenuFlyout.MenuFlyoutPresenterStyle> 
     <Style TargetType="MenuFlyoutPresenter"> 
      <Setter Property="MaxWidth" Value="500"/> 
      <Setter Property="MinWidth" Value="50"/> 
     </Style> 
    </MenuFlyout.MenuFlyoutPresenterStyle> 
</MenuFlyout> 
関連する問題