如何在 Xamarin 窗体中设置页面图标



我尝试在 Xaml 中为我的页面设置图标:

Icon="icon.png

但它不起作用,所以我找到了其他解决方案:如何在 android 的 xamarin 表单中的导航页面导航栏中添加图标? 它是自定义渲染和工作:

[assembly: ExportRenderer(typeof(NavigationPage), typeof(CustomMapRenderer))]
namespace XamarinFormsMaps.Droid
{
public class CustomMapRenderer : NavigationPageRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<NavigationPage> e)
{
base.OnElementChanged(e);
var bar = (Android.Support.V7.Widget.Toolbar)typeof(NavigationPageRenderer)
.GetField("_toolbar", BindingFlags.NonPublic | BindingFlags.Instance)
.GetValue(this);
bar.SetLogo(Resource.Drawable.icon); //how to load other icon, when Page is changing?
}
}
}

但是我想为其他页面设置其他图标...它为所有页面设置相同的图标的代码。如何解决?

当导航的当前页面更改时,可以使用以下代码收到通知。 这是 NavigationPageRenderer 中的一个方法。

protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == "CurrentPage")
{
var page = Element.CurrentPage as ContentPage;
if (page != null)
{
//do what you want.
}
}
}

最新更新