【发布时间】:2021-12-13 04:43:34
【问题描述】:
我有下面的代码,它基本上是默认的选项卡式视图,添加了一种将颜色设置为绿色而不是动态主视图的样式。
<Shell.Resources>
<ResourceDictionary>
<Style x:Key="BaseStyle" TargetType="Element" >
<Setter Property="Shell.BackgroundColor" Value="{DynamicResource Primary}" />
<Setter Property="Shell.ForegroundColor" Value="White" />
<Setter Property="Shell.TitleColor" Value="White" />
<Setter Property="Shell.DisabledColor" Value="#B4FFFFFF" />
<Setter Property="Shell.UnselectedColor" Value="#95FFFFFF" />
<Setter Property="Shell.TabBarBackgroundColor" Value="{DynamicResource Primary}" />
<Setter Property="Shell.TabBarForegroundColor" Value="White"/>
<Setter Property="Shell.TabBarUnselectedColor" Value="#95FFFFFF"/>
<Setter Property="Shell.TabBarTitleColor" Value="White"/>
</Style>
<Style x:Key="GreenStyle" TargetType="Element" >
<Setter Property="Shell.BackgroundColor" Value="Green" />
<Setter Property="Shell.ForegroundColor" Value="White" />
<Setter Property="Shell.TitleColor" Value="White" />
<Setter Property="Shell.DisabledColor" Value="#B4FFFFFF" />
<Setter Property="Shell.UnselectedColor" Value="#95FFFFFF" />
<Setter Property="Shell.TabBarBackgroundColor" Value="Green" />
<Setter Property="Shell.TabBarForegroundColor" Value="White"/>
<Setter Property="Shell.TabBarUnselectedColor" Value="#95FFFFFF"/>
<Setter Property="Shell.TabBarTitleColor" Value="White"/>
</Style>
<Style TargetType="TabBar" BasedOn="{StaticResource BaseStyle}" />
<Style TargetType="FlyoutItem" BasedOn="{StaticResource BaseStyle}" />
</ResourceDictionary>
</Shell.Resources>
我想知道是否可以通过编程将 TabBar BasedOn 属性更改为 GreenStyle。如:
*Trigger*
{
TabBar.BasedOn = GreenStyle;
}
但以一种实际可行的方式。
我之所以问,是因为它的静态性质似乎无法动态工作,并且它不会让我将其更改为:
<Style TargetType="TabBar" BasedOn="{DynamicResource BaseStyle}" />
只要我可以将颜色/样式从它设置的任何颜色更改为绿色,然后返回,就可以接受任何解决方法。我对 Xamarin 表单非常陌生。
【问题讨论】:
标签: c# xamarin.forms xamarin.android visual-studio-2019