【发布时间】:2020-02-26 20:39:15
【问题描述】:
我想将密码字段从点部分屏蔽为星号。我尝试使用转换器,但它不起作用。以 xamarin 形式实现这一目标的最佳方法是什么。
<Entry IsPassword="True"
Placeholder="password"
Text="{Binding Password.Value, Mode=TwoWay, Converter={StaticResource
MaskedPasswordConverter}}"
MaxLength="6">
public class MaskedPasswordConverter : IValueConverter
{
private string _value;
public object Convert(object value, Type targetType, object parameter, CultureInfo
culture)
{
var str = (value ?? "").ToString();
_value = str;
var maskedStr = "";
if (!string.IsNullOrEmpty(str) && str.Length > 2)
{
var domainStr = str.IndexOf('@');
var lengthOfMask = domainStr - 2;
maskedStr = str.Substring(0, 2) + new string('*', lengthOfMask) +
str.Substring(domainStr);
}
return maskedStr;
}
public object ConvertBack(object value, Type targetType, object parameter,
CultureInfo culture)
{
return value;
}
}
【问题讨论】:
-
你需要使用自定义渲染器
-
如果您尝试使用 IsPassword = "False"?你正在制作自己的面具
-
@AlexanderRojas 还是不行
标签: xamarin xamarin.forms xamarin.android xamarin.ios