Dev*_*per 2 c# data-binding dynamicresource mvvm-light xamarin.forms
我有以下控制。我想更改某些事件触发器的背景颜色。我想clrGray在某些事件点击时将此资源设置为颜色。
我已经尝试过以下方法,但没有成功:(
XAM:
<local:RoundedFrame x:Name="MyFrame1" HeightRequest="16" IsVisible="True" BackgroundColor="{DynamicResource clrGreen}">
Run Code Online (Sandbox Code Playgroud)
CS:
//On Some event
//Not working
MyFrame1.SetDynamicResource(MyFrame1.BackgroundColor, "clrGreen");
Run Code Online (Sandbox Code Playgroud)
您可以像这样动态更改颜色:App.Current.Resources["yourColorKey"] = Color.FromHex("hexColor");
例子:
您的 App.xaml 文件:
<Application.Resources>
<!-- Application resource dictionary -->
<ResourceDictionary>
<Color x:Key="backgroundColor">#0066B3</Color>
</ResourceDictionary>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)
您的 xaml 文件:
<StackLayout>
<StackLayout
Margin="10"
BackgroundColor="{DynamicResource backgroundColor}"
HeightRequest="30"
WidthRequest="30" />
<Button x:Name="btnColorChange" Text="Click me!" />
</StackLayout>
Run Code Online (Sandbox Code Playgroud)
在您的事件处理程序中:
private void OnBtnClicked(object sender, EventArgs e)
{
App.Current.Resources["backgroundColor"] = Color.FromHex("#F15A29");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8165 次 |
| 最近记录: |