2015-10-05 88 views
0

我需要的項目在ToogleMenuFlyout佔據屏幕的完整width。 但我沒有解決問題。ToogleMenuFlyout和MenuFlyoutPresenterStyle設置寬度 - Windows 10 Mobile

我試圖把我的網格(網格主頁)的width,但我不會在代碼隱藏。

我正在將樣式應用於MenuFlyoutPresenterStyle但也不給。

我的代碼是:

AppBarButton x:Name="FiltersPhone" Icon="Filter" Label="Names"> 
       <AppBarButton.Flyout> 
        <MenuFlyout> 
        <MenuFlyout.MenuFlyoutPresenterStyle> 
         <Style TargetType="MenuFlyoutPresenter"> 
          <Setter Property="Background" Value="Transparent"/> 
          <Setter Property="BorderThickness" Value="0"/> 
          <Setter Property="Margin" Value="0,4,0,0"/> 
         </Style> 
        </MenuFlyout.MenuFlyoutPresenterStyle> 
        <ToggleMenuFlyoutItem x:Name="FlyoutItemDate" Text="Today" Tag="Date" 
              IsChecked="True/> 

       </MenuFlyout> 
       </AppBarButton.Flyout> 
      </AppBarButton> 

回答

1

應用下應有助於[更新,可支持橫向]:

需要注意的是:這仍然不是一個完美的解決方案,以滿足您的所有需求。我只是想讓你瞭解MenuFlyoutPresenter的最大寬度,ToggleMenuFlyoutItem的寬度屬性是推動你想要的關鍵。

  1. 集X:NAME = 「rootGrid」 頁面的根格

  2. 在後臺代碼,實現以下功能MenuFlyoutPresenter的

    public Page2() 
    { 
        this.InitializeComponent(); 
        this.Loaded += Page2_Loaded; 
    } 
    
    private void Page2_Loaded(object sender, RoutedEventArgs e) 
    { 
        FlyoutItemDate.Width = rootGrid.ActualWidth; 
        DisplayInformation di = DisplayInformation.GetForCurrentView(); 
        di.OrientationChanged += Di_OrientationChanged; 
    } 
    
    private void Di_OrientationChanged(DisplayInformation sender, object args) 
    { 
        if (sender.CurrentOrientation == DisplayOrientations.Portrait) 
        { 
         FlyoutItemDate.Width = rootGrid.ActualWidth; 
        } 
        else if(sender.CurrentOrientation == DisplayOrientations.Landscape) 
        { 
         FlyoutItemDate.Width = rootGrid.ActualHeight; 
        } 
    } 
    
  3. 增加maxwidth較大的一個(如1000)

    <Style TargetType="MenuFlyoutPresenter"> 
         <Setter Property="Background" Value="Red"/> 
         <Setter Property="BorderThickness" Value="0"/> 
         <Setter Property="Margin" Value="0,4,0,0"/> 
         <Setter Property="MaxWidth" Value="1000"/> 
    </Style> 
    

這裏是結果,我把背景變成紅色來說清楚: enter image description here

+0

嗨,謝謝,但不適用於橫向模式。只有肖像是好的。 我不知道我做了什麼更多:( – fipcurren88

+0

更新了我的答案。在橫向模式下,將網格的高度設置爲項目的寬度,並將MenuFlyoutPresenter的Maxwidth屬性設置爲較大值。 –

+0

嗨,模式中肖像是完美的! 但是在風景模式沒有佔用屏幕寬度奇怪:( – fipcurren88