我正在 WPF 中构建登录屏幕。我正在尝试弄清楚如何将我的部分代码绑定(bind)为仅在大写锁定键打开时可见。
<StackPanel Grid.Row="3" Grid.ColumnSpan="2" Grid.Column="1" Orientation="Horizontal">
<Image Source="../../../Resources/Icons/109_AllAnnotations_Warning_16x16_72.png" Height="16" Width="16"/>
<Label>Caps lock is on</Label>
</StackPanel>
我更喜欢仅使用 xaml 绑定(bind)的解决方案。
最佳答案
我们在登录表单中使用以下方法在密码框获得焦点时显示“大写锁定警告”。
private void PasswordBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
UpdateCapsLockWarning(e.KeyboardDevice);
}
private void PasswordBox_GotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
UpdateCapsLockWarning(e.KeyboardDevice);
}
private void PasswordBox_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
CapsLockWarning.Visibility = Visibility.Hidden;
}
private void UpdateCapsLockWarning(KeyboardDevice keyboard)
{
CapsLockWarning.Visibility = keyboard.IsKeyToggled(Key.CapsLock) ? Visibility.Visible : Visibility.Hidden;
}
虽然这不是您正在寻找的仅限绑定(bind)的答案。
关于c# - 绑定(bind)到 Caps Lock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7119315/