【问题标题】:Mimicking radio button logic模仿单选按钮逻辑
【发布时间】:2020-05-12 02:40:59
【问题描述】:

我需要使用以下规则在 C# 中模仿单选按钮逻辑(2 个按钮/事件):

  1. 互斥
  2. 一旦选择了其中任何一个,用户就无法将其重置 - 因为用户无法再次断言事件以将其删除。他必须不断在两个事件之间切换才能改变任何事情。他无法撤消事件所做的任何事情。

详细说明:假设我有 2 个事件 A 和 B,它们与键盘按钮 A 和 B 相关联。

      private void eventA()
      {
      //// draws red circle at current mouse position
      }

      private void eventB()
      {
      //// draws blue circle at current mouse position
      }

       private void Handlekeyboard()
      {
        keyboardState = Keyboard.GetState();
        if (keyboardState.IsKeyDown(Key.A) && lastKeyboardState.IsKeyUp(Key.A))
        {
            EventA_bool = true;
            lastKeyboardState = keyboardState;
        }
        if (keyboardState.IsKeyDown(Key.B) && lastKeyboardState.IsKeyUp(Key.B))
        {
            EventB_bool = true;
            lastKeyboardState = keyboardState;
        }
      }

      protected override OnMouseMove (MouseButtonEventArgs e)

      {
        if(EventA_bool)
          {
           EventA ();
          }
        else if(EventB_bool)
          {
            EventB ();
          }
      }

所以如果我点击键盘按钮“A”,一个红色圆圈将跟随鼠标位置。然后,如果我单击“B”,红色圆圈应该在“B”单击之前的最后一个位置停止,现在蓝色圆圈跟随鼠标移动。反之亦然,如果我从按钮“B”开始,则会出现蓝色圆圈。然后,如果我单击“A”,红色圆圈会跟随,蓝色圆圈会停止但不会消失。我不确定如何在不删除或擦除事件 B 的情况下执行事件 A。

【问题讨论】:

    标签: c# radio-button


    【解决方案1】:

    如果您想控制按钮的当前点击状态,请尝试使用切换按钮而不是常规按钮。

    如果我正确理解您的问题,您需要将 A 和 B 设置为两个切换按钮,并在视图模型中创建两个带有依赖属性信息的 bool 属性,以绑定每个切换按钮的 IsChecked 属性。然后,在每个依赖属性的属性更改事件中,您可以根据是否单击按钮来定义您要查找的行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多