我在工具栏中显示图标时遇到问题。 在Android上,它工作正常,但在UWP上图标是白色的,当你悬停时它是黑色的。 你知道怎么解决吗?
我的代码:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="VwDemo.LoginPage"
Title="Logowanie">
<ContentPage.ToolbarItems>
<ToolbarItem Icon="VwLogo.png" />
</ContentPage.ToolbarItems>
<ContentPage.Content>
<StackLayout VerticalOptions="StartAndExpand" Margin="10,10,10,0">
<Label Text="Login" />
<Entry x:Name="LoginEntry" Placeholder="Login"/>
<Label Text="Hasło" />
<Entry x:Name="PasswordEntry" IsPassword="True" Placeholder="Hasło" />
<Button Text="Zaloguj" Clicked="OnLoginButtonClicked" BackgroundColor="#FF3579B4" TextColor="#FFFBF8F8" />
<Label x:Name="MessageLabel" HorizontalTextAlignment="Center" TextColor="Red" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
答案 0 :(得分:0)
我在工具栏中显示图标时遇到问题。在Android上,它工作正常,但在UWP上图标是白色的,当你悬停时它是黑色的。你知道怎么解决吗?
问题是ToolbarItem
对应的本地控制是AppBarButton
。 AppBarButton
使用BitmapIcon
作为自定义图标。
<CommandBar Background="Transparent" IsOpen="False">
<AppBarButton Label="BitmapIcon">
<AppBarButton.Icon>
<BitmapIcon UriSource="ms-appx:///DA.png" />
</AppBarButton.Icon>
</AppBarButton>
</CommandBar>
如果您将图片文件来源传递给ToolbarItem
,则会在UWP中使用BitmapIcon
进行呈现。但是,BitmapIcon文件的限制很少。
您使用的文件应该是透明背景上的纯色图像。从UriSource位置检索的位图图像应该是具有透明像素和非透明像素的真实位图。推荐的格式是PNG。
有关详情,请参阅此Remark。
答案 1 :(得分:0)
我已经对这个问题进行了一些挖掘,我认为你不会像其他平台那样得到结果。这是因为UWP按照设计显示带有色调的工具栏项。 AppBarButton
是ToolbarItem
(Check UpdateToolbarItems method)的Xamarin.Forms表示形式,具有以下XAML样式XAML styles docs。在这些样式的ContentPresenter
部分中,您可以看到有一个Foreground
属性,它是工具栏项的色调。
例如,这个UWP代码(不 Xamarin.Forms):
TopAppBar = new CommandBar();
(TopAppBar as CommandBar).PrimaryCommands.Add(new AppBarButton()
{
Foreground = new SolidColorBrush(Colors.Aqua),
Icon = new BitmapIcon()
{
UriSource = new Uri("ms-appx:///Assets/StoreLogo.png")
},
Label = "AAA"
});
将产生以下结果。如您所见,Foreground
属性负责着色图像
没有办法 - 至少我不知道 - 您可以使用ToolbarItem
(又名AppBarButton
)来显示图像,而不是它具有某种颜色/色调。如果您仍希望实现此类效果,则可能需要创建自己的CommandBar
版本。
您可以做的是更改您用于该大众徽标的图像。使其透明(即从中删除蓝色背景)