c# – 如何在将布尔值绑定到控件的可见性时防止闪烁
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何在将布尔值绑定到控件的可见性时防止闪烁,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1376字,纯文字阅读大概需要2分钟。
内容图文
![c# – 如何在将布尔值绑定到控件的可见性时防止闪烁](/upload/InfoBanner/zyjiaocheng/799/47ea412461ac4c9dbc694ccab95cf1e8.jpg)
我的ViewModel中有一个布尔属性,名为IsNotSupported,用于在不支持传感器时显示一些警告信息.因此我使用了一个BooleanToVisibilityConverter,它在ressources中添加:
<phone:PhoneApplicationPage.Resources>
<local:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</phone:PhoneApplicationPage.Resources>
并将其绑定到包含警告的stackpanel:
<StackPanel x:Name="NotSupportedWarning" Visibility="{Binding IsNotSupported,
Converter={StaticResource BooleanToVisibilityConverter}}">
这一切都很好,但是当加载页面并且支持传感器时,警告仅在几分之一秒内出现,然后消失.我知道这种闪烁是由于尚未发生的绑定造成的,因此默认为可见.
那闪烁是令人讨厌的……它应该默认崩溃并且只有在明确警告应该显示之后才能显示.此外,这将避免绑定后的第二次布局过程,因此可能会产生积极的性能影响.
我一遍又一遍地遇到这个问题,在互联网上一无所获,直到我找到了this SO问题,这是密切相关的,但如果搜索的是Windows手机而不是Silverlight则找不到.这个问题和解决方案看起来都很简单,但我确实在很长一段时间内都在讨厌我,所以我认为写一个关于它的Q&A-style问题来帮助其他面临同样问题的人可能是个好主意.
解决方法:
看到它后,解决方案很简单.您可以使用FallbackValue控制绑定的默认值(如果绑定尚未发生).您的stackpanel XAML看起来像:
<StackPanel x:Name="NotSupportedWarning" Visibility="{Binding IsNotSupported,
FallbackValue=Collapsed,
Converter={StaticResource BooleanToVisibilityConverter}}">
这样你就可以摆脱闪烁,如果警告隐藏起来,它就不必在绑定后进行转发.
内容总结
以上是互联网集市为您收集整理的c# – 如何在将布尔值绑定到控件的可见性时防止闪烁全部内容,希望文章能够帮你解决c# – 如何在将布尔值绑定到控件的可见性时防止闪烁所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。