1

我在我的项目中使用了Iconize插件,如果 IconToolbarItem 用于 IconNavigationPage 会出现问题,而 IconNavigationPage 本身也用于 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);

但是,如果我们将Detail放在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;

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

4

1 回答 1

0

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

问题是你没有插入mdPageinto 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);
于 2018-02-02T03:18:37.383 回答