2

Silverlight 5 でマルチモニターをサポートするために P/Invoke を使用する作業を行っています (投稿は続きます)。プレイ中に、ウィンドウのサイズと位置によって、2 つのモニターのどちらに追加のウィンドウが最大化されるかが決まることに気付きました。私は(あなたと同じように)プレイを続け、次のように判断しました。

  • 左側のラップトップ (1280 x 800) をプライマリ、モニター (1024 x 768) を右側にすると、式は Left = -(Width/2) + 1271 でした。
  • 私のモニター (1024 x 768) を左側にプライマリとして、ラップトップ (1280 x 800) を右側にすると、数式は Left = -(Width/2) + 1014 でした。
  • 左側にモニター (1024 x 768)、右側にラップトップ (1280 x 800) をプライマリとして使用すると、式は Left = -(Width/2) - 11 でした。
  • 左側にラップトップ (1280 x 800)、右側にモニター (1024 x 768) をプライマリとして使用すると、式は Left = -(Width/2) - 10 でした。

パターン (定数 = 画面幅 - 左側のプライマリの場合は 10、右側のプライマリの場合は定数 = -10) があるように見えますが、正確ではありません。現在、確認できる他のモニターはありません。誰がそれがどうあるべきか知っていますか、それともこれが私の特定のセットアップの単なる成果物なのですか?

(注: これらには制限があります - Left または Width のすべての値に対して機能するわけではありません)

4

1 に答える 1

2

This behavior seems to be consistent with the behavior of MonitorFromWindow. From the documentation:

The MonitorFromWindow function retrieves a handle to the display monitor that has the largest area of intersection with the bounding rectangle of a specified window.

Check to see if this is consistent with your calculations. It should be.

于 2012-03-22T14:11:58.863 に答える