Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] UWP : Tab icons not showing #96

Open
mhrastegari opened this issue Aug 25, 2020 · 4 comments
Open

[Bug] UWP : Tab icons not showing #96

mhrastegari opened this issue Aug 25, 2020 · 4 comments

Comments

@mhrastegari
Copy link

when i set renderer([assembly: ExportRenderer(typeof(TabbedPage), typeof(BadgedTabbedPageRenderer))]) in AssemblyInfo.cs,
my tab icons and titles not showing anymore on UWP.

@craigwi
Copy link

craigwi commented Jun 11, 2021

I had the same problem and discovered that:

  1. the converter used to process the icon is limited; I could get an icon to show using a png in the old location for UWP (same directory as App.xaml).
  2. if you do provide an icon, the title will not show; it is an either or thing on UWP.

@craigwi
Copy link

craigwi commented Jun 11, 2021

On the first point, the UWP TabIconConverter probably needs to allow resource:// to pass through and not get pre-pended with ms-appx:///.

@craigwi
Copy link

craigwi commented Jun 12, 2021

Resource:// is an FFImageLoading convention. To make this work one needs to pick a convention for how to extract the assembly name from the source string and then call GetManifestResourceStream on that assembly. I tried two methods, both of which worked. The simplest is to assume that the full resource name is "<assembly_short_name>.Resources.<resource_name>" and then load the assembly using the <assembly_short_name>. Another way is like FFImageLoading by looking for "?assembly=" in the source string and loading the assembly based on that. See EmbeddedResourceResolver.cs in FFImageloading.

@craigwi
Copy link

craigwi commented Jun 16, 2021

In the end I moved the tab icons to the OS-specific asset location for two reasons:

  1. avoid this issue
  2. on iOS and Android, be able to specify different resolutions of the icons (which I didn't do otherwise).

I also discovered, FWIW, that in the case where the tabbed pages are NavigationPage with children (CreateTabedPageWithNavigationPageChildren() in the demo) one actually does have to set the Title and IconImageSource on BOTH the navigation page and the child (e.g., Tab1) which becomes the root of the NavigationPage. If not, then various cases don't work (e.g., badges don't show up at first on iOS).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants