0

私のアプリケーションはWindowsフォームです。

Windowsの壁紙を使ってみましたが、これは「塗りつぶし」、「ストレッチ」、「フィット」、「タイル」の設定によって異なります。デスクトップにある画像が必要ですが、タスクバーの「下」の部分が含まれています。これは、この部分が透明なタスクバーの場合に表示されるためです。

なぜこれが必要なのですか?開くときにタスクバーの下からスライドするトレイアプリケーションがあるからです。そして、そこにマスクを設定する必要があります。これにより、タスクバーの上部に到達するまで、スライドが表示されなくなります。繰り返しますが、これはタスクバーが透明な場合にのみ問題になります。

4

3 に答える 3

0

あなたの質問を正しく理解できたかどうかわかりません。しかし、私には、壁紙を作成した画像が必要なようです。簡単だと思われる場合は、次の場所にあるレジストリ エントリを確認してください。

HKEY_CURRENT_USER\Control Panel\Desktop

これにより、壁紙のパス、サイズ、タイル/タイルなしなどの情報が得られます。

于 2012-07-23T10:05:19.943 に答える
0

なぜこれが必要なのですか?開いたときにタスクバーの下からスライドするトレイアプリケーションがあるためです。そして、そこにマスクを設定する必要があるので、タスクバーの上部に到達するまで、スライドが見えないようにします。繰り返しますが、これはタスクバーが透明な場合にのみ問題になります。

ここでの問題は、画面の作業領域の下部(つまり、タスクバーの上部)から開始するのではなく、画面全体の下部からスライドを開始していることです。そのため、ポップアップ ウィンドウが透明なタスクバーの後ろにスライドします。

幸いなことに、解決策は、デスクトップの背景を取得したり、任意の種類のマスキングを行ったりするよりもはるかに簡単です。また、はるかに高速であり、目の保養がユーザーのコンピューターに不必要に負担をかけないことは常に良いことです.

タスクバーやその他のサイド バーを含まない、アプリケーションが使用できる領域として Windows によって定義されている画面の作業領域の座標を決定するだけで済みます。Screen.PrimaryScreen.WorkingAreaプロパティを照会することにより、WinForms でこの情報を簡単に取得できます。Rectangleこれは、プライマリ スクリーンの作業領域に対応する を返します。タスクバーは常にプライマリ画面に表示されることがわかっているので、これはまさにあなたが望むものです。

プライマリ スクリーンの作業領域の座標を取得したら、その下部からポップアップ ウィンドウのスライドを開始します。*

これは、何かを達成したい理由の説明を常に含める必要がある理由の良い教訓です。多くの場合、あなたが思いもよらなかったさらに良い方法があります。

*もちろん、ユーザーのタスクバーが画面の下部に配置されていない可能性があるという事実は無視しています。横にも上にも置くことができます。あなたの質問でもこれを考慮していないように思えます。これが自分自身のためだけに作成しているアプリ、またはタスク バーが既定以外の位置にある人がいないことを確認できる制御された環境用に作成しているアプリである場合は、問題ない可能性があります。しかし、より多くの人に配布するためにソフトウェアを作成している場合は、これを考慮する必要があります。もちろん、タスクバーがどこにあるかに関係なく、rcWork座標は正しくなりますが、ポップアップ ウィンドウのスライドを下、左側、右側、または上から開始するかどうかを知る必要があります。

于 2012-07-23T11:00:12.923 に答える
0

あなたが試すことができるPaintDesktopと呼ばれるWin32関数がありますが、私が誤解していない限り、ウィンドウの高さを調整して、実際にタスクバーの後ろに表示されないようにすることができます...

于 2012-07-23T10:56:50.120 に答える