【问题标题】:Xamarin ImageButton statesXamarin ImageButton 状态
【发布时间】:2019-08-23 07:22:30
【问题描述】:

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

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

我能够成功地使用它来更改图像。但是,如果我为“按下”状态设置了不同的图像,当我单击按钮时,它会按预期更改为新图像,但是当我释放按钮时,它的视觉状态会继续显示按下的图像并且不会返回“正常”状态,直到我单击窗口中的其他位置。我用来设置状态的 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>

有谁知道如何进行这项工作?是否有与我应该使用的“按下”不同的状态。有没有其他方法可以做到这一点?

谢谢。

【问题讨论】:

  • 这是 UWP 特有的吗?
  • 我刚刚在 Android 下测试了这个,它似乎确实是 UWP 的一个问题。这仅仅是 UWP 实现中的一个错误吗?
  • 我可以在我身边重现您的问题,它适用于 Android,但不适用于 uwp,我已在 github 上报告此问题,如有更新,我会通知您,请稍等。

标签: xaml xamarin.forms xamarin.uwp


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-02-16
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多