SizeChanged
目前,在处理Window 上的 WPF 事件时,我正试图跳过一些障碍。在用户完成调整窗口大小后,我需要执行一些自定义代码,不幸的是,我没有遇到任何事件,因此我创建了一个使用 Reactive Extensions 来限制 SizeChange 事件的解决方案:
IObservable<SizeChangedEventArgs> ObservableSizeChanges = Observable
.FromEventPattern<SizeChangedEventArgs>(this, "SizeChanged")
.Select(x => x.EventArgs)
.Throttle(TimeSpan.FromMilliseconds(200));
IDisposable SizeChangedSubscription = ObservableSizeChanges
.ObserveOn(SynchronizationContext.Current)
.Subscribe(x => {
Size_Changed(x);
});
基本上,这样做是确保在调用我的自定义代码之前必须经过 200 毫秒的无 SizeChanged 事件。这工作正常但是我遇到了一个问题,如果用户将窗口句柄拖出并继续按住鼠标按钮,代码仍将被执行。我希望能够确保在鼠标按钮按下时无法执行自定义代码。我尝试插入,PreviewMouseLeftButtonDown
但单击窗口句柄时不会触发,只有在窗口框架内单击鼠标时才会触发。是否有任何类似的事件可以插入适用于窗口句柄的鼠标按下?或者谁能想到一个合适的解决方法来解决我遇到的问题?