真的是令人讨厌的行为...嘿,行为如何!
我试图按照好的指导来解决您的问题,好老@AdamPedley在离开Xamarin之前就离开了我们...
https://xamarinhelp.com/masked-entry-in-xamarin-forms/
尽管如此,我意识到即使是很好的举止,也会表现出令人讨厌的行为。
我看到的唯一可行的方法是在用户离开条目后(触发Unfocused
事件时应用格式)
为此,您必须订阅Unfocused
事件:
<Entry x:Name="entry"
Keyboard="Numeric"
Text="{Binding Weight,Mode=TwoWay}"
Unfocused="entry_Unfocused"/>
然后在后面的代码中
private void entry_Unfocused(object sender,FocusEventArgs e)
{
if (double.TryParse(entry.Text,out double result))
{
entry.Text = String.Format("{0:F2}",Math.Floor(result * 100) / 100);
}
}
注意:默认情况下,String.Format会舍入结果。在这里,我使用了a SO thread中给出的解决方案来避免这种讨厌的行为,并将小数位数减少到第二位...但是您可以按照自己的意愿做! (我发现自动执行舍入会导致我在another SO thread中描述的问题!)
本文链接:https://www.f2er.com/3108128.html