2016-11-26 49 views
3

我實際上是新的Xamarin.Forms,我正在開發一個相當簡單的跨平臺應用程序。該應用程序在Android中顯示效果不錯,但在UWP中存在一個愚蠢的空白區域。該項目包含一個帶有4個NavigationPages的TabbedPage,以便在其中推送和彈出頁面。Xamarin.Forms UWP項目標題欄和製表符之間的空白空間

稍微深入UWP平臺細節後,我能夠改變我的標籤的風格。我一直在尋找3天的解決方案,這讓我瘋狂。到目前爲止,我發現的唯一解決方案(藉助VS 2015的Live Visual Tree)將從CommandBar(如第三張附圖所示)將可見性屬性更改爲「摺疊」。但這不是一個解決方案,因爲它只會在運行時消失。

任何人都可以幫忙嗎? 在此先感謝。

Android ViewUWP ViewLive Visual Tree

編輯: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> 
+0

您可以發佈您正在使用的頁面的Xamarin.Forms XAML佈局嗎? –

回答

1

你需要創建一個自定義TabbedPage然後UWP渲染它。

首先,你在PCL創建CustomTabbedPage

public class CustomTabbedPage : TabbedPage { } 

在XAML中,使用此CustomTabbedPage代替TabbedPage。所有行爲和用戶界面在所有平臺上都保持不變。

現在你在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區域。

+0

非常感謝你的回答和你的時間。我希望避免自定義渲染器,但現在我可以看到它是非常必要的。我會讓你知道你的建議。 – kkaragki

+0

我所做的一切正是因爲你告訴我,但在_this_行: 'Control.TitleVisibility = Windows.UI.Xaml.Visibility.Collapsed;' 的VS2015顯示我的錯誤消息: _Error CS1061 \t「FormsPivot」呢不包含「TitleVisibility」的定義,並且沒有可以找到接受「FormsPivot」類型的第一個參數的擴展方法「TitleVisibility」(您是否缺少使用指令或程序集引用?)_ 對不起再次打擾您 – kkaragki

+0

是你可能沒有從NuGet安裝的最新版本的Xamarin.Forms?我檢查了Xamarin.Forms GitHub和屬性應該在那裏,所以它是相當混亂:-) - https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.WinRT .Phone/FormsPivot.cs –

相關問題