問題タブ [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.

0 投票する
3 に答える
84754 参照

c# - WinFormsを使用してコントロールのZオーダーを設定する方法

TextBoxフォーカスを取得すると境界線のスタイルが変わるという習慣を書いています。

境界線を追加すると、コントロールが隣接するコントロールとオーバーラップするため、一時的にテキストボックスをダイアログの前面に移動します(を使用textBox.BringToFront())。

ただし、編集が完了してフォーカスが失われたら、コントロールをZオーダーの元の位置に戻したいと思います。

これは可能ですか(できれば簡単な方法で!)

0 投票する
1 に答える
1636 参照

silverlight-4.0 - DragEnter / Overを取得せず、Silverlight4アプリでイベントをドロップします

UserControlオブジェクトをあるCanvasから別のCanvasにドラッグして、そこにドロップするつもりです。目的地にマウスを合わせると、ドラッグされたオブジェクトが実際に目的地の下に入ります。DragEnter、DragOver、またはDragLeaveイベントが発生しません。オブジェクトをそこにドロップすると、Dropイベントは発生しません。

私のルートオブジェクトは境界線であり、次にグリッドです。グリッドはブラウザクライアント領域全体をカバーします。8列あります。各列には、XAMLによって配置されるキャンバスがあります。

奇妙な動作の例:アイテムを列3から列4(またはそれ以上)にドラッグすると、オブジェクトがキャンバスの下にスライドします。列3から列2(またはそれ以下)にドラッグすると、オブジェクトが上をスライドします。したがって、zorderはCanvasの作成順序の影響を受けるようです。誰かがこれを明確にすることができますか?

各列のCanvasオブジェクトには、DragEnter / Leaveイベントが関連付けられていますが、オブジェクトがCanvasの上にあるか下にあるかに関係なく、いずれも起動しません。

マウスイベントを取得するには、Canvasに背景が必要であることがわかりました。列の各キャンバスには背景があります。何もドラッグしていない場合、マウスイベントが発生します。

私はロープの終わりに近づいています、そして確かにいくつかの援助をいただければ幸いです。

ありがとう、グレッグ

0 投票する
2 に答える
8843 参照

windows - Win32 API を使用して多くのウィンドウの Z オーダーを更新する

シナリオは、トップ レベル ウィンドウへのウィンドウ ハンドルのリストがあり、選択した z オーダーに配置されるようにそれらを移動したいというものです。リストを繰り返し (一番上に表示したいウィンドウを最後に)、SetForegroundWindowそれぞれを呼び出すことから始めました。これは時々うまくいくように見えましたが、常にではなく、各呼び出しの間に少し一時停止すると少し改善されました.

これを行うより良い方法はありますか?


編集:

BeginDeferWindowPos/ DeferWindowPos/EndDeferWindowPosルートが進むべき道のようです。ただし、一度に複数のウィンドウで動作させることはできないようです。ウィンドウ リストを 1 つのウィンドウに制限すると、正しく機能します。リストに複数のウィンドウがある場合、そのうちの 1 つだけを取得しているように見えます。これが私がやっていることの疑似コードです:

ここに欠けているのは小さい/明らかなものだと確信していますが、私はそれを見ていません。

0 投票する
1 に答える
1144 参照

c# - WPF UserControl の BringToFront メソッドを作成するにはどうすればよいですか?

これは、いくつかの特別な機能を備えたウィンドウのように動作することを目的としています。これまでのところ、サイズを変更して画面全体にドラッグできます。XAML を使用して複数の CoolControl オブジェクトをアプリケーション ウィンドウに追加すると、最後に宣言されたオブジェクトが常に前面に表示されます。これは問題ありませんが、実行時に CoolControl オブジェクトの 1 つをクリックすると、そのコントロールが他のすべてのコントロールの前に配置されるようにしたいと考えています。

を使用してみましCanvas.SetZIndexたが、十分に賢い解決策を思いつくことができない場合を除き、それがどのように役立つかわかりません。1 つのコントロールの Z-Index を 9999 に設定すると、時間の経過とともにクリックする他のすべてのコントロールの値が同じ 9999 になるためです。

誰かの UserControl の BringToFront() メソッドを作成するタスクを与えられた場合、可能な限り簡単な方法でそれを行うにはどうすればよいでしょうか? 親ウィンドウを取得し、すべてのコントロールをループして、最大の Z-Index を見つけ、それに応じて CoolControl の Z-Index を設定するよりも、それが有効な解決策である場合は、より良い解決策をお勧めします。

0 投票する
3 に答える
19095 参照

objective-c - スプライトの Z オーダーを変更するにはどうすればよいですか?

Objective-C、特に Cocos2D で作成したスプライトの Z オーダーを設定したいと考えています。

これは、次のコードをビルドしようとしたときに発生するエラーです。

...220: error: object cannot be set - either readonly property or no setter found

Z オーダーは何らかの方法で設定できる必要があります。作成された後ではなく、インスタンス化の行でのみ設定できますか? CCSprite の属性のセッター メソッドを作成する必要がありますか? それらのメソッドがまだないのはなぜですか?

0 投票する
1 に答える
5495 参照

c# - BringToFront()が機能しない

私はスプラッシュフォームを備えたwinformプロジェクトを持っています(この質問の最初の回答で説明されているように:C#winformsスタートアップ(スプラッシュ)フォームは非表示ではありません)。

このスプラッシュフォームを使用すると、メインフォームがフォーカスを失います。Form.BringToFront()でスプラッシュフォームを閉じたらすぐに前面に表示したいのですが、機能しません。

誰でも助けることができますか?

0 投票する
2 に答える
2580 参照

wpf - WindowsFormsHost ZOrder

WindowsFormsHost コントロールが一番上に表示されるように設定されているようです。z オーダーを変更して、同じウィンドウ上の他の WPF コントロールを WindowsFormsHost コントロールの上に表示できるようにする方法はありますか?

0 投票する
3 に答える
2390 参照

mfc - win32 CTabctrl: アクティブなタブで「子」ウィ​​ンドウを描画する

CTabCtrl を含むサイズ変更可能なダイアログがあります。タブ コントロールには 4 つのタブがあり、クリックすると 4 つの異なる CTreeCtrls のいずれかが表示されます。

CTabCtrl からクラスを派生させました。このクラスは、その「子」コントロールを次のように追跡します。

そして、次のように子コントロールを描画しようとします:

ただし、子コントロールは、表示されている間は常に正しく描画されるとは限りません。コンテンツを混同し、クリックすると正しいコンテンツのみが表示されます(実際のツリーコントロール)。

これは、zorder でウィンドウを描画して移動する最良の方法ですか?何が欠けていますか?

どうもありがとう

BG

0 投票する
1 に答える
448 参照

android - ビューの適切なzオーダーを使用して、Androidでこの基本的なレイアウトを実現するにはどうすればよいですか

Androidで次のレイアウトを実現するにはどうすればよいですか?

私が望むのは、3 つの青いボックスをビューの上部に配置し、赤いボックスを青いボックスの下の中央に配置したいのですが、赤いボックスを上にアニメーション化すると、その下にスライドするようにすることです。ブルーボックス。

青と赤のボックスを異なるレイアウトに配置しようとしましたが、赤いボックスをアニメーション化するとすぐに、レイアウトの境界線の外に出ると消えます(赤いボックスのレイアウトで赤をクリップしたくありません)赤いボックスを青いボックスの下にスライドさせて、青いボックスが赤いボックスを覆い隠すようにします。)

また、一連のネストされたレイアウトを使用してこのレイアウトを作成することもできましたが、描画順序が原因で、赤いボックスが常に青いボックスの上に表示されます。BringToFront() メソッドを使用しようとしましたが、これは同じレイアウト内の兄弟ビューでのみ機能することがわかりました。残念ながら、4 つのビューすべてを同じレイアウト内に保持しながら、このタイプのレイアウトを取得することはできません。助言がありますか?(また、この質問のタイトルについてより良い提案があれば、私はすべて耳にします)

代替テキスト

0 投票する
1 に答える
217 参照

silverlight - リストボックス内のカスタム アイテムを使用した Zordering - Silverlight

カスタムボタンを作成しています。このスクリーンショットが役に立ちます。画像のようにバッジが左にぶら下がっているのでボタンに問題はありません。しかし、バッジを右に垂らしたい場合、リストボックスの次の項目は、コンテナの境界 (ボタンの幅) を超えるバッジの部分を覆い隠します。これを zordering で修正することはできませんよね?これは、コンテナー内の順序にのみ適用されるため、この場合は ListBoxItem です。ここで何かできることはありますか?参考までに、バッジのスペースを確保するのに十分なマージンを入れるなどの回避策を避けたいと思っています。別のカスタム ボタンがありますそのテキストは編集可能であり、入力されたテキストを取得するために使用される TextBox の拡張は、下にあるボタンをはるかに超えて広がります。