なぜこれが必要なのですか?開いたときにタスクバーの下からスライドするトレイアプリケーションがあるためです。そして、そこにマスクを設定する必要があるので、タスクバーの上部に到達するまで、スライドが見えないようにします。繰り返しますが、これはタスクバーが透明な場合にのみ問題になります。
ここでの問題は、画面の作業領域の下部(つまり、タスクバーの上部)から開始するのではなく、画面全体の下部からスライドを開始していることです。そのため、ポップアップ ウィンドウが透明なタスクバーの後ろにスライドします。
幸いなことに、解決策は、デスクトップの背景を取得したり、任意の種類のマスキングを行ったりするよりもはるかに簡単です。また、はるかに高速であり、目の保養がユーザーのコンピューターに不必要に負担をかけないことは常に良いことです.
タスクバーやその他のサイド バーを含まない、アプリケーションが使用できる領域として Windows によって定義されている画面の作業領域の座標を決定するだけで済みます。Screen.PrimaryScreen.WorkingArea
プロパティを照会することにより、WinForms でこの情報を簡単に取得できます。Rectangle
これは、プライマリ スクリーンの作業領域に対応する を返します。タスクバーは常にプライマリ画面に表示されることがわかっているので、これはまさにあなたが望むものです。
プライマリ スクリーンの作業領域の座標を取得したら、その下部からポップアップ ウィンドウのスライドを開始します。*
これは、何かを達成したい理由の説明を常に含める必要がある理由の良い教訓です。多くの場合、あなたが思いもよらなかったさらに良い方法があります。
*もちろん、ユーザーのタスクバーが画面の下部に配置されていない可能性があるという事実は無視しています。横にも上にも置くことができます。あなたの質問でもこれを考慮していないように思えます。これが自分自身のためだけに作成しているアプリ、またはタスク バーが既定以外の位置にある人がいないことを確認できる制御された環境用に作成しているアプリである場合は、問題ない可能性があります。しかし、より多くの人に配布するためにソフトウェアを作成している場合は、これを考慮する必要があります。もちろん、タスクバーがどこにあるかに関係なく、rcWork
座標は正しくなりますが、ポップアップ ウィンドウのスライドを下、左側、右側、または上から開始するかどうかを知る必要があります。