在按钮Xamarin窗体上设置时,静态资源颜色不起作用



我正在使用static resource设置buttontextbackgroundcolor,但根本不显示颜色。

我在共享项目.t 中添加了项目级别的Theme.cs文件

public static class Theme
{
public static Color Application_GreenColor = Color.FromHex("5EC451");
public static Color Application_RedColor = Color.FromHex("#EC3323");
}

在此xaml文件下方,在button上设置颜色

<?xml version="1.0" encoding="utf-8" ?>
<Grid
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:local="clr-namespace:projectName;assembly=projectName"
xmlns:extensions="clr-namespace:projectName.Extensions.MarkupExtensions;assembly=projectName"
x:Class="path/projectName">
<Grid>
<Grid.RowDefinitions>
<RowDefinition
Height="Auto" />
<RowDefinition
Height="Auto" />
</Grid.RowDefinitions>
<Grid
Grid.Row="1"
Margin="20,20,20,20">
<Grid.ColumnDefinitions>
<ColumnDefinition
Width="*" />
<ColumnDefinition
Width="*" />
</Grid.ColumnDefinitions>
<Button
Margin="0,0,0,0"
Command="{Binding ConfirmCardCommand}"
Text="CardOperationsView"
FontSize="Medium"
CornerRadius="30"
ContentLayout="Right"
TextColor="{x:Static local:Theme.Application_PrimaryButtonTextColor}"
Grid.Column="1"
HorizontalOptions="FillAndExpand"
VerticalOptions="Center"
BackgroundColor="{x:Static local:Theme.Application_RedColor}" />
</Grid>
</Grid>
</Grid>

上面的UI用于弹出。弹出窗口就是这样打开的

private async Task ShowCardDialogAsync()
{
_CardPopup = await DialogHelper.ShowCustomBottomPopupAsync(new CardPopupTemplate(), this);
}

来自xaml的Button不是任何背景和文本颜色。我该怎么解决这个问题?

做了一个小项目,但颜色在按钮中显示为背景颜色红色。

你添加了这个吗。

xmlns:local="clr-namespace:ColorbindingClass"

使用您自己的项目名称更改ColorbindingClass。不停地出错。

这就是解决这个问题的方法。在App.xaml文件中声明颜色

<Color x:Key="LblgbColor">#AFABAB</Color>
<Color x:Key="AccentColor">#BC4C1B</Color>
<Color x:Key="BackgroundColor">#212C37</Color>
<Color x:Key="BlackColor">#000000</Color>
<Color x:Key="BlackTextColor">#253748</Color>
<Color x:Key="BlueColor">#0072C6</Color>

像这样使用xaml文件

<BoxView Grid.ColumnSpan="3"
Grid.Row="0"
HorizontalOptions="FillAndExpand"
VerticalOptions="StartAndExpand"
HeightRequest="1"
BackgroundColor="{StaticResource BackgroundColor}">
</BoxView>