Windows 10中的PasswordBox怪异行为

时间:2015-09-09 18:47:13

标签: c# xaml windows-10 passwordbox

我正在尝试在Windows 10通用应用程序中使用PasswordBox。我面临的问题是,如果我在用户有机会输入之前使用某些文本预先填充PasswordBox,则不会再显示“显示”按钮。如果我在应用程序运行时填充PasswordBox,则不会发生这种情况。我也尝试过/不使用推荐的PasswordRevealMode和已弃用的IsPasswordRevealButtonEnabled,但没有运气。

这是一个展示问题的小片段:

<StackPanel>
    <TextBlock Text="Pre-populated:"/>
    <PasswordBox x:Name="PrePopulatedPasswordBox"
        PasswordRevealMode="Peek"
        Password="123456"
    />
    <TextBlock Text="Type to populate"/>
    <PasswordBox x:Name="PopulatedWhenRunningPasswordBox"/>
</StackPanel>

我不认为这是预期的行为(据我所知:https://msdn.microsoft.com/en-uS/office/office365/windows.ui.xaml.controls.passwordbox.aspx

1 个答案:

答案 0 :(得分:1)

查看PasswordRevealMode属性documentation,看起来这是已知行为:

  

如果PasswordBox失去焦点然后重新获得焦点,则除非清除密码并重新开始输入字符,否则不会再显示“显示”按钮。

由于字段已预先填充,因此除非密码字段发生更改,否则不会显示“显示”按钮。也许这不是最好的行为,但似乎确实按照设计工作了#34;