Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.Forms样式是否支持来自应用目标的变量/参数?_Xamarin.forms_Parameters_Styles - Fatal编程技术网

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中太深了,如果我在按钮实例化中重写它,我必须复制几乎所有的样式代码,所以我想知道是否有简单的方法来实现这一点。