Xamarin.Forms 使用 Flyout/Menu Item 作为标题并自定义 BG 颜色和文本颜色
Posted
技术标签:
【中文标题】Xamarin.Forms 使用 Flyout/Menu Item 作为标题并自定义 BG 颜色和文本颜色【英文标题】:Xamarin.Forms use Flyout/Menu Item as header and customize BG Color and Text Color 【发布时间】:2020-08-26 19:58:54 【问题描述】:在我的 shell 应用程序弹出菜单中,我希望有只是文本的标题项。它们必须是不可点击和可定制的(我想弄清楚的最重要的部分是可定制的部分)。
在我的 MainShell.xaml 页面中包含此代码会导致项目出现,但我无法弄清楚如何自定义它们的外观(我希望“父母”和“学生”具有不同的背景颜色和文本颜色) .
<MenuItem Text="Parent"/>
<FlyoutItem Title="Lobby">
<ShellContent ContentTemplate="DataTemplate pages:Lobby" />
</FlyoutItem>
<FlyoutItem Title="Announcements">
<ShellContent ContentTemplate="DataTemplate pages:Announcements" />
</FlyoutItem>
<MenuItem Text="Student"/>
【问题讨论】:
欢迎来到 SO!您的意思是要在 Xamarin Forms Shell 应用程序中为MenuItem
设置背景颜色吗?
我想这样做,但也要改变字体的外观,使 MenuItem 不可点击,并且将文本一直放在左边(没有图标边距)。跨度>
好的,我已经更新了一个答案,你有时间可以看看。如果回复有帮助,请不要忘记接受它作为答案(点击左上角的✔这个答案),它将帮助其他有类似问题的人。
【参考方案1】:
有一个Shell.MenuItemTemplate
可以Define MenuItem appearance,那么你可以自定义一个不同背景颜色和文字颜色的MenuItem。
例如:
<MenuItem>
<Shell.MenuItemTemplate>
<DataTemplate>
<Label Text="Custom MenuItem"
HeightRequest="40"
HorizontalTextAlignment="Center"
VerticalTextAlignment="Center"
FontSize="Large"
FontFamily="Montserrat-Regular"
BackgroundColor="LightBlue"
TextColor="Brown"/>
</DataTemplate>
</Shell.MenuItemTemplate>
</MenuItem>
效果:
【讨论】:
以上是关于Xamarin.Forms 使用 Flyout/Menu Item 作为标题并自定义 BG 颜色和文本颜色的主要内容,如果未能解决你的问题,请参考以下文章
在 Xamarin.Forms 中使用 Android 绑定
Xamarin.Forms:Forms.Context 已过时