飞扬的Blog
主页
登录
拦截WPF按钮被多次点击后多触发的事件
"date"
:
"2021-08-01 20:11:47"
"classfiy"
:
"c#"
"author"
:
"飞扬"
"viewTimes"
:
216
返回
```csharp var btns = FindLogicalChildren<Button>(window); foreach (var item in btns) { item.PreviewMouseLeftButtonDown += (_, pe) => { if (pe.ClickCount > 1) pe.Handled = true; }; } ``` >枚举控件方法 ```csharp public IEnumerable<T> FindLogicalChildren<T>(DependencyObject depObj) where T : DependencyObject { if (depObj != null) { foreach (object rawChild in LogicalTreeHelper.GetChildren(depObj)) { if (rawChild is DependencyObject) { if (rawChild is T) { yield return (T)rawChild; } foreach (T childOfChild in FindLogicalChildren<T>((DependencyObject)rawChild)) { yield return childOfChild; } } } } } ```