Ama*_*eth 3 .net c# windows wpf event-handling
我将borderless window尺寸调整模式设置为canMinimize
WindowStyle="None"
ResizeMode="CanMinimize"
Run Code Online (Sandbox Code Playgroud)
当我将我的window state某些按钮更改为最小化时,单击并从任务栏图标还原,然后触发窗口的激活事件。
但是,当我从任务栏图标最小化窗口并从任务栏图标还原时,则我的窗口不会触发激活的事件。
这与窗口样式无关。您也可以尝试其他样式,您将观察到相同的行为。
底层的窗口激活逻辑基于Windows的消息。当您单击活动窗口的任务栏图标时,以下消息将发送到该窗口:
其次是:
WM_ACTIVATE与wParam含有WA_ACTIVE+ 最小化Activated即使实际上已将窗口最小化,这WA_ACTIVE也会导致WPF窗口引发事件(再次看到该状态?)。再次单击任务栏图标时,该窗口将被还原并收到以下消息:
WM_ACTIVATE与wParam含有WA_ACTIVE+ 没有最小化但是由于窗口“已”已经激活,因此不会发生任何Activated事件。我将其视为Windows的错误(即使窗口最小化,为什么我们仍会收到WA_ACTIVE状态?)也许您可以向Microsoft询问。
为了克服这个问题,您可以改用StateChanged事件并检查窗口的状态(WindowState.Minimizedvs. WindowsState.Normal)。
| 归档时间: |
|
| 查看次数: |
359 次 |
| 最近记录: |