問題タブ [z-order]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swing - メイン アプリケーション ウィンドウの上に表示される最小化可能な JFrame
私のアプリはダイアログをポップアップします。ユーザーは通常、このダイアログとアプリケーション ウィンドウをしばらくの間、行ったり来たりしたいと考えています。このダイアログを一番上に置いて、メイン アプリケーション ウィンドウの後ろに隠れないようにします。しかし同時に、しばらく必要がない場合に邪魔にならないように、ダイアログに最小化ボタンを付けたいと思います。
これが私が試したことです:
モードレス JDialog を使用します。ダイアログはうまく前面に表示されますが、最小化ボタンがなく、独自のタスクバー ボタンもありません。
JFrame を使用します。ダイアログには最小化ボタンと独自のタスクバー ボタンがありますが、メイン ウィンドウがフォーカスされると、ダイアログはその後ろに隠れます。
JFrame を使用し、ダイアログに WindowListener.windowDeactivated() { this.toFront() } を追加します。これの問題は、 toFront() もフォーカスを設定するため、奇妙なフォーカスのちらつき効果が得られることです。
setAlwaysOnTop で JFrame を使用する - これが最も近い解決策ですが、ウィンドウは私のアプリケーションだけでなく、他のすべてのアプリケーションの上に表示されます。
フォーカスを変更せずに toFront が JFrame を前面に持ってくるだけなら簡単ですが、残念ながらそうではありません。JFrame の Z オーダーを変更する別の方法はありますか?
編集:JDialogを「ロールアップ」する簡単な方法、つまりタスクバーではなく最小化する方法があれば、それも私の問題を解決することに気づきました。
windows - 他の既存のサード パーティ ウィンドウの背後にウィンドウを配置する
特定のウィンドウのスクリーンショットを撮るには、そのウィンドウの後ろに白色の TForm を配置する必要があります。ウィンドウの z オーダーを変更して正しく配置するには、どの Windows API を使用できますか?
jquery - JQuery: ホバー時に div の上に表示されるボックス化されたテキストの作成
mainDiv と呼ばれる div があり、その<p>
中にテキストを含む要素が含まれているとします。最初の要素にカーソルを合わせると表示され、マウスを最初の要素から離すとすぐに非表示になる、同じ div 内に別の要素 (a<p>
または a<div>
または何か他のもの)を作成したいと考えています。好ましくは、2 番目の要素のテキストは、黒いボックスで囲まれるか、たとえば Facebook の写真ページのキャプションに似たものになります。<p>
これはどのように行うことができますか?ホバー イベントにトグル機能を追加することを考えていますが、JQuery を初めて使用するため、これを行う方法が正確にはわかりません。また、ホバー時に表示される要素のボックス (半透明、不透明度 60% など) を作成するための CSS を提供できますか? また、これが toggle() で実行できる場合、toggle()をスローまたはファスト (show(slow) のように) などのアニメーションの速度と一緒に使用できますか?
また、この目標には高い z オーダーが不可欠であると考えていますが、ボックスが横ではなく真上に表示されるか、またはそのようなものになるかはわかりません。
actionscript-3 - AS3-表示の並べ替えにMatrix3Dオブジェクトを使用
私は3D空間で動き回っている約20個のオブジェクトを扱っています。アドビでは、「Matrix3Dオブジェクトを使用して表示を並べ替える」ことをお勧めします。
TransformオブジェクトのgetRelativeMatrix3D()メソッドを使用して、子3D表示オブジェクトの相対z軸を取得します。
removeChild()メソッドを使用して、表示リストからオブジェクトを削除します。
相対的なz軸の値に基づいて表示オブジェクトを並べ替えます。
addChild()メソッドを使用して、子を逆の順序で表示リストに追加し直します。
素晴らしい。オブジェクトが動いていない場合は問題ありません。しかし、アニメーションが発生していて、あるオブジェクトがz空間で別のオブジェクトの前に来る場合はどうなるでしょうか。オブジェクトは、Zオーダーではなく、ディスプレイリスト内の位置に従って表示されます。アニメーション化中にオブジェクトをzオーダーを尊重させるにはどうすればよいですか(オブジェクトAのz値がオブジェクトBよりも小さくなる場合、オブジェクトAをオブジェクトBの前に表示します)。明らかに、アニメーション中に表示リストをクリアすることはできません。
wpf - WPF の最上位ウィンドウの不透明度と z オーダーを制御するにはどうすればよいですか?
小さな WPF アプリ ウィンドウを半透明にし、他のウィンドウの上に置きたいと思います。
最上位のウィンドウの設定を変更すると、タイトルバーや境界線ではなく、コンテンツにのみ影響するようです。
これはWPFで可能ですか??
ありがとう
wpf - WPF アニメーション - キャンバスを前面に表示
透明に設定したアニメーションがありますCanvas
。Canvas
それを a のコンテンツに設定しButton
、アニメーションを実行します。(コードについては、この質問を参照してください。)
問題は、アニメーションがアプリの他の UI 要素の背後に配置されることがあることです (私は Avalon Dock を使用しており、それはそれが入っているものの前にありDockableContent
ますが、その隣の要素の後ろにあります)。いくつかのテストでは、これは関連付けられているようです。何らかの方法でボタンのサイズに合わせます(オーバーフローする場合DockableContent
)。
Canvas
それをすべての上に置く方法はありますか?(注: キャンバス内の要素を 内の他の要素の上に上げようとしているわけではありませんCanvas
。)
助けてくれてありがとう。
編集:
これはScrollViewer
、アニメーションを保持していたボタンの周りにあるために発生していましたCanvas
。これにより、上書きではなく展開されました。
いくつかの回避策を考えることができますが、提案を受け付けています。
wpf - IsHitTestVisible を右ボタン イベントに対してのみ false に設定できますか?
明らかに、この質問に対する率直な答えは「いいえ」ですが、そのような効果を達成するための最善の方法は何ですか? 説明するために、ここに少し背景があります...
画像と、その画像に重ねられた形状のレイヤーをいくつか表示するアプリがあります。これらはすべてグリッド セル内に配置され、相互に重なり合い、ローカルの z オーダーの下部に画像が配置されます。速度を上げるために、オーバーレイは FrameworkElement から派生したクラスとして実装され、独自のビジュアルを作成および管理します。
これは、レイヤーがどのように配置され、どのような相互作用が必要かを示す基本的な図 (3D に分解されていますが) です。
overlapped_controls.png http://www.afterbang.co.uk/mal/stackoverflow/overlapped_controls.png
ご覧のとおり、上部のオーバーレイでは、ユーザーが画像内の任意の場所に新しい四角形をドラッグできるようにする必要があります。そのために、透明な背景を与えて、描画できるガラス板のように機能させました。これの明らかな欠点は、すべてのマウス イベントが下のレイヤーに渡されなくなることです。
マウスの左ボタンのイベントを一番上のレイヤーの透明な領域にトラップし、他のイベントが z オーダーのさらに下のレイヤーにヒットするようにしたいと本当に思っています。
この種のものに従うべきWPF志向のパターンはありますか?ベストプラクティスやテクニックはありますか?
私はまだ WPF に慣れていませんが、API に合わせたソリューションを作成したいと考えています。ありがとう。
wpf - 別の WPF ウィンドウの前にある WPF ウィンドウ
私は WPF ウィンドウを持っています。このウィンドウでは、ボタンをクリックして新しいウィンドウを表示できます。ここで、メインウィンドウをクリックできるように無効にしたいと思います。MessageBox のようなものである必要があります。
windows - 透明なウィンドウ ダイアログと描画プリミティブを、ストリーミング ビデオを描画しているウィンドウの上に残すにはどうすればよいですか?
ストリーミング ビデオが描画される 1 つのウィンドウを含む activeX コントロールがあります。さまざまな方法で透明または半透明にした別のウィンドウで作成した別のダイアログがあります (つまり、SetLayeredWindowAttributes(...) をダイアログの Layered プロパティ [アルファ ブレンディング用] と一緒に使用するか、透明を設定します)。財産)。
さらに、さまざまな方法を使用して、ダイアログのウィンドウが常にストリーミングビデオウィンドウの上に描画されるようにしようとしましたが、うまくいくとは証明されていません。ダイアログにボタンがある場合、または LineTo(...) 呼び出しで透明な表面に描画する場合、それらはビデオの上に残りません。SetWindowPos を使用して 2 つのウィンドウの z オーダーに影響を与えようとしましたが、「TopMost」などのダイアログ ウィンドウのプロパティを変更しようとしましたが、役に立ちませんでした。
ストリーミング ビデオにオーバーレイされたウィンドウに対してこのようなことを試み、ストリーミング ビデオの後に常にフロント ウィンドウを描画するために z オーダーを取得した人はいますか?
更新: 02/10/10 - LWA_COLORKEY を使用して SetLayeredWindowAttributes(...) で WS_EX_LAYERED プロパティを使用してみましたが、私が探していたものを達成しました。階層化されたプロパティは WS_CHILD スタイルでは使用できないため、このソリューションでは、ビデオを含むウィンドウに対するオーバーレイ ウィンドウの位置を管理する必要があります。さらに、私が排除しようとしている他の奇妙な点がいくつかあります。たとえば、ビデオを含む ActiveX コントロール ウィンドウが IE タブに埋め込まれていて、別のタブに切り替えると、オーバーレイ ウィンドウのコントロールが新しいタブの上に残ります (WS_POPUP スタイルが使用されている場合)。これに対処する代替手段があるかどうかをまだ調査してから、スイッチを決定し、ウィンドウの可視性を非表示にします。