【问题标题】:How to create Resource Style in XAML of VisualStateManager?如何在 VisualStateManager 的 XAML 中创建资源样式?
【发布时间】:2019-01-28 16:11:48
【问题描述】:

您好,我创建了一个ImagenButton,如下所示:

<ImageButton Source="articulos.png" Clicked="ImageButton_Clicked"/>

这是动画的代码:

<VisualStateManager.VisualStateGroups>
     <VisualStateGroup x:Name="CommonStates">
          <VisualState x:Name="Normal">
              <VisualState.Setters>
                  <Setter Property="Scale" Value="1"/>
              </VisualState.Setters>
          </VisualState>
          <VisualState x:Name="Pressed">
              <VisualState.Setters>
                  <Setter Property="Scale" Value="0.8"/>
              </VisualState.Setters>
           </VisualState>
       </VisualStateGroup>
</VisualStateManager.VisualStateGroups>

但我想创建许多具有相同样式的按钮,我不希望代码重复。

这是完整的代码:

<ImageButton Source="articulos.png" Clicked="ImageButton_Clicked">               
     <VisualStateManager.VisualStateGroups>
          <VisualStateGroup x:Name="CommonStates">
             <VisualState x:Name="Normal">
                 <VisualState.Setters>
                     <Setter Property="Scale" Value="1"/>
                 </VisualState.Setters>
             </VisualState>
             <VisualState x:Name="Pressed">
                 <VisualState.Setters>
                     <Setter Property="Scale" Value="0.8"/>
                 </VisualState.Setters>
              </VisualState>
          </VisualStateGroup>
     </VisualStateManager.VisualStateGroups>
 </ImageButton>

请帮忙。

【问题讨论】:

    标签: xaml xamarin xamarin.forms visualstatemanager


    【解决方案1】:

    您可以在页面中定义样式,然后将它们应用到您的控件:

    <StackLayout.Resources>
        <Style TargetType="ImageButton">
            <Setter Property="VisualStateManager.VisualStateGroups">
                    <VisualStateGroupList>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Normal">
                                <VisualState.Setters>
                                    <Setter Property="Scale" Value="1"/>
                                </VisualState.Setters>
                        </VisualState>
                        <VisualState x:Name="Pressed">
                            <VisualState.Setters>
                                <Setter Property="Scale" Value="0.8"/>
                            </VisualState.Setters>
                        </VisualState>
                    </VisualStateGroup>
                </VisualStateGroupList>
            </Setter>
        </Style>
    </StackLayout.Resources
    

    查看官方文档,那里有an example

    【讨论】:

      猜你喜欢
      • 2017-08-24
      • 2023-04-05
      • 2011-08-06
      • 2021-09-20
      • 2010-11-19
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 2017-01-18
      相关资源
      最近更新 更多