如何动态更改 BackgroundColor 的资源?
How to dynamically change resource of BackgroundColor?
我有以下控制。我想更改某些事件触发器的背景颜色。我想将此 clrGray
资源设为某些事件点击时的颜色。
我试过以下方法,但没有用:(
XAM:
<local:RoundedFrame x:Name="MyFrame1" HeightRequest="16" IsVisible="True" BackgroundColor="{DynamicResource clrGreen}">
CS:
//On Some event
//Not working
MyFrame1.SetDynamicResource(MyFrame1.BackgroundColor, "clrGreen");
您可以像这样动态更改颜色:App.Current.Resources["yourColorKey"] = Color.FromHex("hexColor");
示例:
您的 App.xaml 文件:
<Application.Resources>
<!-- Application resource dictionary -->
<ResourceDictionary>
<Color x:Key="backgroundColor">#0066B3</Color>
</ResourceDictionary>
</Application.Resources>
您的 xaml 文件:
<StackLayout>
<StackLayout
Margin="10"
BackgroundColor="{DynamicResource backgroundColor}"
HeightRequest="30"
WidthRequest="30" />
<Button x:Name="btnColorChange" Text="Click me!" />
</StackLayout>
在您的事件处理程序中:
private void OnBtnClicked(object sender, EventArgs e)
{
App.Current.Resources["backgroundColor"] = Color.FromHex("#F15A29");
}
使用Xamarin.Forms 动态资源。下面是 Xamarin 文档的 link:
https://developer.xamarin.com/guides/xamarin-forms/user-interface/styles/dynamic/
它们很容易 use/implement,并且完全按照您的意愿行事。
我有以下控制。我想更改某些事件触发器的背景颜色。我想将此 clrGray
资源设为某些事件点击时的颜色。
我试过以下方法,但没有用:(
XAM:
<local:RoundedFrame x:Name="MyFrame1" HeightRequest="16" IsVisible="True" BackgroundColor="{DynamicResource clrGreen}">
CS:
//On Some event
//Not working
MyFrame1.SetDynamicResource(MyFrame1.BackgroundColor, "clrGreen");
您可以像这样动态更改颜色:App.Current.Resources["yourColorKey"] = Color.FromHex("hexColor");
示例:
您的 App.xaml 文件:
<Application.Resources>
<!-- Application resource dictionary -->
<ResourceDictionary>
<Color x:Key="backgroundColor">#0066B3</Color>
</ResourceDictionary>
</Application.Resources>
您的 xaml 文件:
<StackLayout>
<StackLayout
Margin="10"
BackgroundColor="{DynamicResource backgroundColor}"
HeightRequest="30"
WidthRequest="30" />
<Button x:Name="btnColorChange" Text="Click me!" />
</StackLayout>
在您的事件处理程序中:
private void OnBtnClicked(object sender, EventArgs e)
{
App.Current.Resources["backgroundColor"] = Color.FromHex("#F15A29");
}
使用Xamarin.Forms 动态资源。下面是 Xamarin 文档的 link:
https://developer.xamarin.com/guides/xamarin-forms/user-interface/styles/dynamic/
它们很容易 use/implement,并且完全按照您的意愿行事。