Xamarin.Forms样式是否支持来自应用目标的变量/参数?
我有一个复杂的Xamarin.Forms样式是否支持来自应用目标的变量/参数?,xamarin.forms,parameters,styles,Xamarin.forms,Parameters,Styles,我有一个复杂的视觉状态,不喜欢把它复制到任何地方,所以把它放在资源字典 但是一些设置者的值应该被目标的实际值所取代: 例如:{Parameter1}和{Parameter1}是我希望替换的东西 <ResourceDictionary> <Style x:Key="ToggleButton" TargetType="button:SfButton"> <Setter Propert
视觉状态
,不喜欢把它复制到任何地方,所以把它放在资源字典
但是一些设置者的值应该被目标的实际值所取代:
例如:{Parameter1}
和{Parameter1}
是我希望替换的东西
<ResourceDictionary>
<Style x:Key="ToggleButton" TargetType="button:SfButton">
<Setter Property="ShowIcon" Value="True"/>
<Setter Property="IsCheckable" Value="True"/>
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList x:Name="CommonStates">
<VisualStateGroup>
<VisualState x:Name="Unchecked">
<VisualState.Setters>
<Setter Property="ImageSource" Value="{mb:ImageAsset Source={Parameter1} }" />
<Setter Property="BackgroundColor" Value="#3900" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Checked">
<VisualState.Setters>
<Setter Property="ImageSource" Value="{mb:ImageAsset Source={Parameter2} }" />
<Setter Property="BackgroundColor" Value="#6090" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
</ResourceDictionary>
但在控件的实例化中,无法传递这些参数:
<button:SfButton Style="{StaticResource ToggleButton, ??Parameter1=xxx?? }" Text="xx"/>
那么有没有办法做到这一点呢?根据我对状态变化的理解,你想改变图像的来源,如果是这样的话,你有不同的选择和未选择的图像,你不应该在需要的地方分别分配它吗?还是我误解了你的处境请说清楚@FreakyAli,是的,最终结果正如你所说,但我想要一个更好的解决方案。我想用相同的sytle(不同视觉状态的颜色/字体/大小)创建多个按钮,但是有自己的图像源,但是图像源属性在sytle中太深了,如果我在按钮实例化中重写它,我必须复制几乎所有的样式代码,所以我想知道是否有简单的方法来实现这一点。