You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询:如何通过左右子按钮切换7个主按钮的显示与隐藏状态

实现左右按钮循环切换主按钮显示/隐藏

核心思路

把所有主按钮存入一个集合,用变量跟踪当前显示的按钮索引,点击左右按钮时调整索引,切换对应按钮的可见性,通过索引取模实现循环逻辑。

步骤1:定义全局变量

在窗口/UserControl的类中添加以下变量,用于管理按钮状态:

// 存储所有主按钮的集合
private List<Button> _mainButtons;
// 当前显示的按钮索引
private int _currentButtonIndex = 0;

步骤2:初始化按钮集合

在窗口Loaded事件(或构造函数InitializeComponent之后)初始化集合,设置默认显示状态:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    _mainButtons = new List<Button>
    {
        PLAY, LEAVE, INSTALL, MAPS, INSTALL_BLOCK, RUN, REPAIR
    };
    // 默认隐藏所有按钮,只显示第一个
    foreach (var btn in _mainButtons)
    {
        btn.Visibility = Visibility.Collapsed;
    }
    _mainButtons[_currentButtonIndex].Visibility = Visibility.Visible;
}

步骤3:通用切换逻辑方法

编写统一的切换方法,处理左/右方向的索引计算与可见性切换:

private void SwitchMainButton(bool isRight)
{
    // 隐藏当前显示的按钮
    _mainButtons[_currentButtonIndex].Visibility = Visibility.Collapsed;

    // 计算新索引,处理循环边界
    if (isRight)
    {
        _currentButtonIndex = (_currentButtonIndex + 1) % _mainButtons.Count;
    }
    else
    {
        // 左切换时避免索引为负,加总数量后取模
        _currentButtonIndex = (_currentButtonIndex - 1 + _mainButtons.Count) % _mainButtons.Count;
    }

    // 显示新的目标按钮
    _mainButtons[_currentButtonIndex].Visibility = Visibility.Visible;
}

步骤4:修改左右按钮事件逻辑

替换你现有事件代码,调用切换方法:

private void LEFT_MouseDown(object sender, MouseButtonEventArgs e)
{
    Dispatcher.BeginInvoke(DispatcherPriority.Background, (SendOrPostCallback)delegate
    {
        SwitchMainButton(false); // 左方向切换
    });
}

private void RIGHT_MouseDown(object sender, MouseButtonEventArgs e)
{
    Dispatcher.BeginInvoke(DispatcherPriority.Background, (SendOrPostCallback)delegate
    {
        SwitchMainButton(true); // 右方向切换
    });
}

注意事项

  • 确保XAML中主按钮的Name属性与代码中的变量名(PLAY、LEAVE等)完全一致
  • 若主按钮不是Button类型,将List<Button>替换为对应控件类型(如ToggleButton)
  • 如需支持多组按钮切换,可将集合与索引改为数组/字典,分别管理每组状态

内容的提问来源于stack exchange,提问作者Sói9x

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 08:25:18