【发布时间】:2015-06-12 05:20:58
【问题描述】:
我想编写一个用户控件来输入新密码。在我看来,这应该显示为“更改密码”按钮,当用户单击该按钮时,它应该被 PasswordBox 和两个按钮 Save 和 Discard 替换。当用户单击Save 按钮时,应调用DataContext 中的一个方法,并将新密码作为参数。
我的问题是,当密码用户控件处于“更改密码状态”并且我必须在下面显示一个虚拟键盘时,还必须有类似覆盖的东西,它会禁用视图的其余部分覆盖在PasswordBox下方。
我正在寻找提示,要走哪条路。我认为Adorner 应该这样做,但我是 WPF 新手,不知道这是否正确。
我不想创建弹出窗口。我想在那里显示“更改密码”按钮所在的PasswordBox。
编辑:
现在,我有这样的:
<TextBlock Grid.Column="0" Grid.Row="2" Text="{lex:LocText Password}"/>
<Button Grid.Column="2" Grid.Row="2" Visibility="{Binding IsPasswordBoxVisible, Converter={StaticResource NegatedBooleanVisibilityConverter}}" Command="{Binding ShowPasswordBoxCommand}" Content="{lex:LocText SetNewPassword}"/>
<PasswordBox Grid.Row="2" Grid.Column="2" Visibility="{Binding IsPasswordBoxVisible, Converter={StaticResource BooleanVisibilityConverter}}" ... />
PasswordBox 应该出现在它现在所在的相同位置,但位于覆盖层的顶部(旁边有两个按钮“保存”和“取消”)。
【问题讨论】: