如何在 Xamarin 表单中的主题资源字典中应用条件
How to apply condition inside the theme resource dictionary in Xamarin forms
我已经通过资源字典为 Xamarin 应用应用了浅色主题和深色主题。
这是我的资源示例
浅色主题:
<ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="App.Views.Themes.LightTheme"
xmlns:converters="clr-namespace:App.Services.Helper;assembly=App.Services">
<!-- bootm bar background color -->
<Color x:Key="BottomBar">#17a7a7</Color>
</ResourceDictionary>
深色主题:
<ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="App.Views.Themes.DarkTheme"
xmlns:converters="clr-namespace:App.Services.Helper;assembly=App.Services">
<!-- bootm bar background color -->
<Color x:Key="BottomBar">#292a2a</Color>
</ResourceDictionary>
两个主题都工作正常,但我只需要根据用户更改底部栏颜色level.Its 仅适用于浅色主题。
条件是:
if(memeberlevel =="Basic"){
//need to change bottom bar color as green
}
else if(memeberlevel =="Intermediate")
{
//need to change bottom bar color as silver
}
else
{
//need to change bottom bar color as gold
}
我如何在
的 Light 主题资源字典中应用此条件
<Color x:Key="BottomBar">#17a7a7</Color>
这里我需要根据用户等级x:Key="BottomBar"设置绿色、银色和金色
感谢快速帮助。提前致谢
我觉得你可以改成这样
App.Current.Resources["BottomBar"] = Color.Green;
您可以在您的代码中执行此操作,而不是在资源字典中通过有条件地将颜色绑定到您的视图模型。如何访问资源颜色的示例:
(Color)Application.Current.Resources["BottomBar"]
您可以定义几种颜色来反映资源字典中的记忆级别。如果你只需要深色主题,那么在深色主题资源字典中将它们定义为不同的颜色,并在浅色主题中保持相同。
我已经通过资源字典为 Xamarin 应用应用了浅色主题和深色主题。
这是我的资源示例
浅色主题:
<ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="App.Views.Themes.LightTheme"
xmlns:converters="clr-namespace:App.Services.Helper;assembly=App.Services">
<!-- bootm bar background color -->
<Color x:Key="BottomBar">#17a7a7</Color>
</ResourceDictionary>
深色主题:
<ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="App.Views.Themes.DarkTheme"
xmlns:converters="clr-namespace:App.Services.Helper;assembly=App.Services">
<!-- bootm bar background color -->
<Color x:Key="BottomBar">#292a2a</Color>
</ResourceDictionary>
两个主题都工作正常,但我只需要根据用户更改底部栏颜色level.Its 仅适用于浅色主题。
条件是:
if(memeberlevel =="Basic"){
//need to change bottom bar color as green
}
else if(memeberlevel =="Intermediate")
{
//need to change bottom bar color as silver
}
else
{
//need to change bottom bar color as gold
}
我如何在
的 Light 主题资源字典中应用此条件 <Color x:Key="BottomBar">#17a7a7</Color>
这里我需要根据用户等级x:Key="BottomBar"设置绿色、银色和金色
感谢快速帮助。提前致谢
我觉得你可以改成这样
App.Current.Resources["BottomBar"] = Color.Green;
您可以在您的代码中执行此操作,而不是在资源字典中通过有条件地将颜色绑定到您的视图模型。如何访问资源颜色的示例:
(Color)Application.Current.Resources["BottomBar"]
您可以定义几种颜色来反映资源字典中的记忆级别。如果你只需要深色主题,那么在深色主题资源字典中将它们定义为不同的颜色,并在浅色主题中保持相同。