Xamarin ImageButton状态

时间:2019-04-02 04:01:48

标签: xaml xamarin.forms xamarin.uwp

我正在尝试创建一个ImageButton,它将正常(未按下)状态和用户积极按下按钮的状态使用不同的图像。我找到了一篇文章,该文章使用VisualStateGroup根据状态更改按钮的外观:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/imagebutton#imagebutton-visual-states

我能够成功地使用它来更改图像。但是,如果我为“ Pressed”状态设置了其他图像,则当我单击按钮时,它确实会按预期更改为新图像,但是当我释放按钮时,其视觉状态会继续显示按下的图像,但不会返回到“正常”状态,直到我在窗口中的其他位置单击为止。我用来设置状态的XAML如下:

        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="CommonStates">
                <VisualState x:Name="Normal">
                    <VisualState.Setters>
                        <Setter Property="Scale"
                        Value="1" />
                        <Setter Property="Source" Value="Assets/changeuser.png" />
                    </VisualState.Setters>
                </VisualState>

                <VisualState x:Name="Pressed">
                    <VisualState.Setters>
                        <Setter Property="Scale"
                        Value="0.8" />
                        <Setter Property="Source" Value="Assets/changeuser_highlight.png" />
                    </VisualState.Setters>
                </VisualState>

            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>

有人知道如何进行这项工作吗?是否有与我应该使用的“已按下”状态不同的状态。还有其他方法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用Released返回初始图像。 对我来说,它奏效了。

<VisualState x:Name="Released">
  <VisualState.Setters>
      <Setter Property="Scale"
              Value="1" />
      <Setter Property="Source" 
              Value="Assets/changeuser.png" />
  </VisualState.Setters>
</VisualState>