gpt4 book ai didi

c# - 使用 COntrol 键控制按钮的可见性

转载 作者:可可西里 更新时间:2023-11-01 14:14:54 26 4
gpt4 key购买 nike

我想控制我的按钮在我的 C# WPF 应用程序的窗口中的可见性。

。仅当用户单击“alt+a+b”时,按钮才应该可见。如果用户单击“alt+a+c”,按钮应该不可见。我该怎么做。有什么想法吗?

最佳答案

就我个人而言,我会在实现 INotifyPropertyChanged 接口(interface)的 View 模型中创建一个名为 IsButtonVisible 的 bool 属性。

然后我会添加某种处理程序方法来处理按键(KeyDown 事件):

if ((Keyboard.Modifiers & ModifierKeys.Alt) == ModifierKeys.Alt) // Is Alt key pressed
{
IsButtonVisible = Keyboard.IsKeyDown(Key.A) && Keyboard.IsKeyDown(Key.B);
}

现在 IsButtonVisible 属性将在正确的按键按下时更新,我们只需要使用此值来影响 Button Visibility 属性。为此,我们需要实现一个 IValueConverter 以在 bool 值和 Visibility 值之间进行转换。

[ValueConversion(typeof(bool), typeof(Visibility))]
public class BoolToVisibilityConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null || value.GetType() != typeof(bool)) return null;
bool boolValue = (bool)value;
return boolValue ? Visibility.Visible : Visibility.Collapsed;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null || value.GetType() != typeof(Visibility)) return null;
return (Visibility)value == Visibility.Visible;
}
}

现在,我们只需要从 XAML Button 声明绑定(bind)到我们的 bool 属性:

<Button Visibility="{Binding IsButtonVisible, 
Converter={StaticResource BoolToVisibilityConverter},
FallbackValue=Collapsed, Mode=OneWay}">

关于c# - 使用 COntrol 键控制按钮的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17807664/

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