gpt4 book ai didi

c# - 如何创建一个仅接受数字的输入范围的 PasswordBox?

转载 作者:太空狗 更新时间:2023-10-29 22:58:50 25 4
gpt4 key购买 nike

这似乎是 Windows Phone 中的明显疏忽。 <PasswordBox />控件不允许指定 InputScope .

我需要显示 PasswordBox作为自定义密码输入屏幕的一部分(例如图像和按钮),并显示数字键盘以仅允许数字输入。

Coding4Fun 的 PasswordInputPrompt允许数字输入但它不可自定义,因为我无法围绕它构建自定义布局,它只允许 Title & Message值(value)观。

我有什么办法可以做到这一点吗?

最佳答案

您最好只创建自己的用户控件。

xaml 看起来像这样:

<Grid x:Name="LayoutRoot">
<TextBox x:Name="PasswordTextBox" InputScope="Number" MaxLength="{Binding MaxLength, ElementName=UserControl}" KeyUp="PasswordTextBox_KeyUp"/>
</Grid>

背后的代码可能是这样的:

public partial class NumericPasswordBox : UserControl
{
#region Password

public string Password
{
get { return (string)GetValue(PasswordProperty); }
set { SetValue(PasswordProperty, value); }
}

// Using a DependencyProperty as the backing store for Password. This enables animation, styling, binding, etc...
public static readonly DependencyProperty PasswordProperty =
DependencyProperty.Register("Password", typeof(string), typeof(NumericPasswordBox), new PropertyMetadata(null));

#endregion

#region MaxLength

public int MaxLength
{
get { return (int)GetValue(MaxLengthProperty); }
set { SetValue(MaxLengthProperty, value); }
}

// Using a DependencyProperty as the backing store for MaxLength. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MaxLengthProperty =
DependencyProperty.Register("MaxLength", typeof(int), typeof(NumericPasswordBox), new PropertyMetadata(100));

#endregion

public NumericPasswordBox()
{
InitializeComponent();
}

private void PasswordTextBox_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
Password = PasswordTextBox.Text;

//replace text by *
PasswordTextBox.Text = Regex.Replace(Password, @".", "●");

//take cursor to end of string
PasswordTextBox.SelectionStart = PasswordTextBox.Text.Length;
}
}

从那时起,您可以使用示例中显示的 MaxLength 等依赖属性,随心所欲地自定义所有内容。

关于c# - 如何创建一个仅接受数字的输入范围的 PasswordBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24549769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com