Xamarin ImageButton 状态
Posted
技术标签:
【中文标题】Xamarin ImageButton 状态【英文标题】:Xamarin ImageButton states 【发布时间】: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 上报告此问题,如有更新,我会通知您,请稍等。 【参考方案1】:您可以使用 Released 返回初始图像。 对我来说它有效。
<VisualState x:Name="Released">
<VisualState.Setters>
<Setter Property="Scale"
Value="1" />
<Setter Property="Source"
Value="Assets/changeuser.png" />
</VisualState.Setters>
</VisualState>
【讨论】:
以上是关于Xamarin ImageButton 状态的主要内容,如果未能解决你的问题,请参考以下文章
imageButton 中,怎么实现 src 的图片 和imagebutton 大小 相同拜托各位大神
android里ImageButton 的android:src属性对应的函数是啥