3

私は実質的にXamarin.Formsを初めて使用し、かなり単純なクロスプラットフォーム アプリケーションを開発しています。アプリは Android では十分に表示されますが、UWP では愚かな空白スペースがあります。このプロジェクトは、内部にページをプッシュおよびポップするために、内部に 4 つの NavigationPages を持つ TabbedPage で構成されています。

UWP プラットフォームの詳細を少し掘り下げた後、タブのスタイルを変更することができました。私は解決策を3日間探していましたが、それは私を夢中にさせています。これまでに見つけた唯一の解決策 (VS 2015 の Live Visual Tree の助けを借りて) は、VisibilityプロパティをCommandBar から"Collapsed"に変更することです(3 番目の添付写真を参照)。しかし、それは解決策ではありません。なぜなら、それは実行時にのみ消えてしまうからです。

誰でも助けることができますか?前もって感謝します。

Android ビューUWP ビューライブ ビジュアル ツリー

編集: 私のMainPage.xamlコードは次のとおりです。

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            xmlns:local="clr-namespace:_TIF_Xamarin;assembly=_TIF_Xamarin"
            x:Class="_TIF_Xamarin.MainPage">

  <!--4 different tabs, which also are Navigation Pages-->
  <NavigationPage Title="Home">
    <x:Arguments>
      <local:HomePage />
    </x:Arguments>
  </NavigationPage>

  <NavigationPage Title="Exhibitor">
    <x:Arguments>
      <local:ExhibitorsPage />
    </x:Arguments>
  </NavigationPage>

  <NavigationPage Title="Exhibits">
    <x:Arguments>
      <local:ExhibitsPage />
    </x:Arguments>
  </NavigationPage>

  <NavigationPage Title="More">
    <x:Arguments>
      <local:MorePage />
    </x:Arguments>
  </NavigationPage>

</TabbedPage> 
4

1 に答える 1

1

TabbedPageカスタムを作成してから、そのための UWP レンダラーを作成する必要があります。

まずCustomTabbedPage、PCL でを作成します。

public class CustomTabbedPage : TabbedPage { }

XAML では、CustomTabbedPageの代わりにこれを使用しますTabbedPage。すべての動作と UI は、すべてのプラットフォームで同じままです。

次に、UWP プロジェクトでレンダラーを作成します。

[assembly: ExportRenderer(typeof(CustomTabbedPage), typeof(CustomTabbedPageRenderer))]

namespace App.UWP
{

    public class CustomTabbedPageRenderer : TabbedPageRenderer
    {
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            Control.TitleVisibility = Windows.UI.Xaml.Visibility.Collapsed;
        }
    }
}

を使用しFormsPivot.TitleVisibilityて領域を非表示にしTitleます。

于 2016-11-26T11:14:04.260 に答える