Xamarin.Forms / UWP:Iconize和MasterDetailPage的问题

时间:2018-02-01 11:22:00

标签: xamarin.forms uwp master-detail toolbaritems

我为我的项目使用了Iconize插件,如果在IconNavigationPage中使用了IconToolbarItem,则会出现问题,该问题本身就在MasterDetailPage的详细信息中使用。

如果我们从IconizeSample启动UWP项目,IconToolbarItems会很好地显示在 TabbedPage 中:

var tabbedPage = new IconTabbedPage { Title = "Iconize" };
foreach (var module in Plugin.Iconize.Iconize.Modules)
{
    tabbedPage.Children.Add(new Page1
    {
        BindingContext = new ModuleWrapper(module),
        Icon = module.Keys.FirstOrDefault()
    });
}
MainPage = new IconNavigationPage(tabbedPage);

如果我们用 MasterDetailPage 替换TabbedPage,如果Detail不是IconNavigationPage,这也适用:

var mdPage = new MasterDetailPage();
mdPage.Master = new ContentPage
{
    Title = "Iconize"
};
var module = Plugin.Iconize.Iconize.Modules.First();
mdPage.Detail = new Page1
{
    BindingContext = new ModuleWrapper(module),
    Icon = module.Keys.FirstOrDefault()
};
MainPage = new IconNavigationPage(mdPage);

但是如果我们将详细信息放在 IconNavigationPage 中,则IconToolbarItem的图标将不再可见:

var mdPage = new MasterDetailPage();
mdPage.Master = new ContentPage
{
    Title = "Iconize"
};
var module = Plugin.Iconize.Iconize.Modules.First();
mdPage.Detail = new IconNavigationPage(new Page1
{
    BindingContext = new ModuleWrapper(module),
    Icon = module.Keys.FirstOrDefault()
});
MainPage = mdPage;

你能解释一下吗?有没有办法解决这个等待新的软件包版本?

1 个答案:

答案 0 :(得分:0)

  

但是如果我们将Detail放在IconNavigationPage中,那么IconToolbarItem的图标将不再可见:

问题是您尚未将mdPage插入IconNavigationPage。我修改了你的代码,但它确实有效。

var mdPage = new MasterDetailPage();
mdPage.Master = new ContentPage
{
    Title = "Iconize"
};
var module = Plugin.Iconize.Iconize.Modules.First();
var page = new Page1
{
    BindingContext = new ModuleWrapper(module),
    Icon = module.Keys.FirstOrDefault()
};
mdPage.Detail = page;
MainPage = new IconNavigationPage(mdPage);