如何在 MasterDetailPage 中自定义箭头图标、页面图标和页面标题 - Xamarin.Forms
How to customize arrow icon, page icon and page title in MasterDetailPage - Xamarin.Forms
我在 Visual Studio 2015 年创建了一个新的空白应用程序(Xamarin.Forms 便携式)项目并修改了 App.cs 以获得 "hamburger menu":
public class App : Application
{
public App()
{
var masterPage = new ContentPage()
{
Content = new Label { Text = "Hello from Master!"},
Title = "Master Page"
};
var detailPage = new ContentPage()
{
Content = new Label { Text = "Hello from Detail!" },
Title = "Detail Page"
};
var mainPage = new MasterDetailPage()
{
Master = masterPage,
Detail = detailPage,
Title = "Main Page"
};
// The root page of your application
MainPage = mainPage;
}
. . .
}
一切正常,但我如何自定义这四个东西:
1) Hide / change Arrow
2) Hide / change Icon
3) Hide / change Title text
4) Hide whole toolbar
如果您在 NavigationPage
中使用 DetailPage
,您可以将箭头更改为汉堡图标:
Detail = new NavigationPage(detailPage);
要更改图标,只需更改项目文件:
- YourProject/Resources/drawable/icon.png
- YourProject/Resources/drawable-hdpi/icon.png
- YourProject/Resources/drawable-xhdpi/icon.png
- YourProject/Resources/drawable-xxhdpi/icon.png
或在您的 MasterDetailPage
上将 Icon
属性 设置为另一个资源。
如果你想隐藏图标 - 它只适用于 Android。可以用自定义渲染器解决(http://developer.xamarin.com/guides/cross-platform/xamarin-forms/custom-renderer/):
public class CustomNavigationRenderer : NavigationRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<NavigationPage> e)
{
base.OnElementChanged (e);
var actionBar = ((Activity)Context).ActionBar;
actionBar.SetIcon (Resource.Color.transparent);
}
}
编辑:
也可以在 MainActivity.cs:
中完成
ActionBar.SetIcon (new ColorDrawable(Resources.GetColor (Android.Resource.Color.Transparent)));
只需在 Page
上使用 Title
属性。
SetHasNavigationBar(page, false);
我在 Visual Studio 2015 年创建了一个新的空白应用程序(Xamarin.Forms 便携式)项目并修改了 App.cs 以获得 "hamburger menu":
public class App : Application
{
public App()
{
var masterPage = new ContentPage()
{
Content = new Label { Text = "Hello from Master!"},
Title = "Master Page"
};
var detailPage = new ContentPage()
{
Content = new Label { Text = "Hello from Detail!" },
Title = "Detail Page"
};
var mainPage = new MasterDetailPage()
{
Master = masterPage,
Detail = detailPage,
Title = "Main Page"
};
// The root page of your application
MainPage = mainPage;
}
. . .
}
一切正常,但我如何自定义这四个东西:
1) Hide / change Arrow
2) Hide / change Icon
3) Hide / change Title text
4) Hide whole toolbar
如果您在
NavigationPage
中使用DetailPage
,您可以将箭头更改为汉堡图标:Detail = new NavigationPage(detailPage);
要更改图标,只需更改项目文件:
- YourProject/Resources/drawable/icon.png
- YourProject/Resources/drawable-hdpi/icon.png
- YourProject/Resources/drawable-xhdpi/icon.png
- YourProject/Resources/drawable-xxhdpi/icon.png
或在您的
MasterDetailPage
上将Icon
属性 设置为另一个资源。如果你想隐藏图标 - 它只适用于 Android。可以用自定义渲染器解决(http://developer.xamarin.com/guides/cross-platform/xamarin-forms/custom-renderer/):
public class CustomNavigationRenderer : NavigationRenderer { protected override void OnElementChanged(ElementChangedEventArgs<NavigationPage> e) { base.OnElementChanged (e); var actionBar = ((Activity)Context).ActionBar; actionBar.SetIcon (Resource.Color.transparent); } }
编辑: 也可以在 MainActivity.cs:
中完成ActionBar.SetIcon (new ColorDrawable(Resources.GetColor (Android.Resource.Color.Transparent)));
只需在
Page
上使用Title
属性。SetHasNavigationBar(page, false);