1

Silverlight 2 アプリケーションでポップアップ ウィンドウを使用しています。これらは、タイトル バーをクリックしてドラッグすることにより、標準的な方法で移動できます。タイトル バーがブラウザーのクロムの背後にあるサイトの外にドラッグされると、ウィンドウを移動できなくなります。

これに問題があると考えるユーザーがいます。ウィンドウがクロムの後ろで動かなくなったときに、ウィンドウを移動できるようにする他の方法があるのではないかと考えていました。

または、ポップアップの一部がウィンドウの外に出ないようにする方法の方がよいでしょう。

4

4 に答える 4

2

マウスの動きは、離散時間間隔で報告されます。つまり、マウスを速く動かすほど、報告されるマウスの位置が離れます。マウスをウィンドウの内側から外側にすばやくドラッグすると、ウィンドウのかなり内側(PointA)の位置をレポートできますが、次のレポートはウィンドウのかなり外側(PointB)になります。ドラッグ中にCaptureMouse呼び出しを使用すると、ポインターがホストウィンドウの外にあるときにマウス位置レポートを受信できます。ウィンドウを超えて移動したことに気付いたときは、マウスがウィンドウの端にあると見なすことができます。つまり、PointAからPointBに架空の線を引く場合、最後の点はその線がウィンドウの境界と交差した場所であると想定できます。MouseCaptureを使用していない場合、またはウィンドウレスプラグインを使用している場合は、ウィンドウの外にドラッグすると、マウスイベントが表示されると思います。その場合、マウスがウィンドウの境界を越えた位置を推定することはより困難です。

于 2009-05-26T07:24:08.250 に答える
1

少し調べてみると、ポップアップの標準的なドラッグ メカニズムはなく、同僚がそれを実装していることがわかりました。コードを展開して、ポップアップをホスト ウィンドウに制限するのは簡単でした。とはいえ、ちょっと変な振る舞いをします。ゆっくりとスムーズにドラッグすると、ポップアップはホスト ウィンドウの端まで移動できますが、高速で不安定なドラッグを行うと、端に到達する前にポップアップが停止します。それがなぜなのか、まだ解明しようとしている。

于 2008-11-20T12:17:58.957 に答える
0

これに対処する最善の方法は、ユーザーがブラウザウィンドウの外にドラッグしないようにすることです。これを行うには、 Silverlightホストコントロールの幅と高さを取得できます。その情報を取得したら、ユーザーがウィンドウをドラッグするときにウィンドウの場所を確認し、ウィンドウの境界を超えないようにすることができます。

于 2008-11-19T15:39:47.770 に答える
0

Mouse_Leave イベントが発生しているためでしょうか??

于 2010-01-18T00:41:58.853 に答える