我在 wpf 中有一个切换按钮列表,我希望用户能够通过拖动来切换多个按钮。为此,我为每个按钮使用了 MouseEnter-Event。当我在按钮外按下鼠标按钮并开始拖动时,这确实有效。但是当我在一个按钮上按下鼠标按钮并开始拖动时,MouseEnter-Event 仅在我按下鼠标按钮的第一个按钮上被触发(也没有其他事件,如 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;
}
}
我找到了使用“拖放”和拖动事件的解决方案,但我认为必须有一个更简单的解决方案?