我在 WPF 中有一个切换按钮列表,希望用户能够通过拖动切换多个按钮。为了实现这个功能,我使用了每个按钮的 MouseEnter 事件。当我在按钮外按下鼠标并开始拖动时,这确实有效。但是当我在一个按钮上按下鼠标并开始拖动时,MouseEnter 事件仅对我按下鼠标的第一个按钮触发(同时像 mouseover 或 mousemove 等其他事件也不会触发)。
以下是代码:
public void AddButton()
{
ToggleButton btn = new ToggleButton();
btn.MouseEnter += VisibilityButton_Enter;
this.gridButtons.Children.Add(btn);
}
private void VisibilityButton_Enter(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed || e.RightButton == MouseButtonState.Pressed)
{
ToggleButton btn = sender as ToggleButton;
btn.IsChecked = !btn.IsChecked;
}
}
我找到了一种使用“拖放”和dragover事件的解决方案,但我认为可能有更简单的解决方案?