Я пытаюсь добавить панель вкладок с вкладками в свое приложение MAUI, и она отлично работает с отображением и навигацией между страницами. Но по какой-то причине я просто не могу отображать изображения в свойстве Tab Icon. Я получаю только круглую точку. Хотя я заметил, что если я неправильно ссылаюсь на изображение, точка исчезает.
Я видел несколько видеороликов на YouTube, следил за вкладками Microsoft Fundamentals for Shell, пытался использовать другие значки и расширения, пробовал добавлять значки в ShellContent, но по-прежнему получаю только круглую точку.
<Shell
x:Class = "MyApp.AppShell"
xmlns = "http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local = "clr-namespace:MyApp">
<TabBar>
<Tab Title = "Counter"
Icon = "counter.png">
<ShellContent
ContentTemplate = "{DataTemplate local:MainPage}"/>
</Tab>
<Tab Title = "Log"
Icon = "log.png">
<ShellContent
ContentTemplate = "{DataTemplate local:Log}"/>
</Tab>
<Tab Title = "About"
Icon = "about.png">
<ShellContent
ContentTemplate = "{DataTemplate local:About}"/>
</Tab>
</TabBar>
</Shell>
Значки отлично работают, если я использую обычный ShellContent без Tab или TabBar.
<Shell
x:Class = "MyApp.AppShell"
xmlns = "http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local = "clr-namespace:MyApp"
FlyoutBehavior = "Flyout">
<ShellContent
Title = "Counter"
ContentTemplate = "{DataTemplate local:MainPage}"
Icon = "counter.png"
Route = "MainPage" />
<ShellContent
Title = "Log"
ContentTemplate = "{DataTemplate local:Log}"
Icon = "log.png"
Route = "Log" />
<ShellContent
Title = "About"
ContentTemplate = "{DataTemplate local:About}"
Icon = "about.png"
Route = "About" />
</Shell>
Единственное, что я не пробовал, что используется в Microsoft Fundamentals, это xmlns:local = "clr-namespace:MyApp.View"
, но одно из видео на YouTube также не использовало этот шаблон MVVM.
Любые предложения или идеи?
Просто кажется странным, что никто еще не сообщил об этом, хотя, возможно, вы правы. Увы, Windows Machine не запускается, и я не могу точно понять, какие настройки мне нужно проверить, чтобы она заработала. Появляется сообщение о том, что «Отладчик подключен к MyApp.exe, но не настроен для отладки этого необработанного исключения». Я читал, что это может быть параметр в Debug -> Windows -> Настройки исключений.
Кажется, андроид не поддерживает установку цветного изображения в качестве значка вкладки. Я пробовал ваш код с двумя видами изображений. Вот мой код:
<TabBar>
<Tab
Title = "Home"
Icon = "first.png">
<ShellContent ContentTemplate = "{DataTemplate local:MainPage}"/>
</Tab>
<Tab Title = "NewPage"
Icon = "second.png">
<ShellContent ContentTemplate = "{DataTemplate local:NewPage1}"/>
</Tab>
</TabBar>
<ShellContent
Title = "Home"
Icon = "first.png"
ContentTemplate = "{DataTemplate local:MainPage}"
Route = "MainPage" />
<ShellContent
Title = "NewPage"
Icon = "second.png"
ContentTemplate = "{DataTemplate local:NewPage1}"
Route = "NewPage1" />
И результат с цветным изображением:
Значок получает круглую точку, если изображение является цветным.
Результат с черно-белой картинкой:
Иконка может корректно отображаться как во всплывающем элементе, так и на панели вкладок.
Вы совершенно правы. Я удалил фон изображения, оставив только значок белого цвета, и теперь я вижу его правильно. Красиво нашел. :) Такие вещи должны были быть упомянуты на вкладках Microsoft Fundamentals for Shell.
Учитывая, что значок работает в одном месте, а не на вкладке/вкладке, пахнет так, будто это ошибка Мауи. Но я не пробовал значки там, так что я просто предположил. Вы пробовали в Windows, чтобы увидеть, работают ли они там?