問題タブ [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 投票する
1 に答える
1638 参照

c# - 新しいWPFウィンドウは、元のウィンドウの下にのみ表示されます

私のWPFアプリケーションでは、メインフォームにDataSetからのバインドされたデータを表示するListViewがあります。ユーザーがListViewの行をダブルクリックすると、詳細ウィンドウが開きます。

XAMLでは、スタイルを使用してリストビューにダブルクリックハンドラーを作成しました。

コードビハインドには、開いている詳細ウィンドウ(一度に複数開くことができます)を追跡する辞書があり、詳細ウィンドウがすでに開いている場合は前面に表示されます。私はダブルクリックを次のように処理します。

私の問題は、上記のようなコードでは、詳細ウィンドウがメインフォームの後ろで開かれることです。所有者情報(window.Owner = this)を設定すると、メインフォームの上に詳細ウィンドウが開きますが、メインフォームが詳細ウィンドウの前に表示されることはありません。

displayedCards[row].Activate()期待どおりに機能し、その詳細ウィンドウを他のすべての詳細ウィンドウの前面に表示しますが、上記と同じ問題の犠牲になります。メインウィンドウの前面には表示されません。

私が達成したいのは、メインウィンドウと同じレベル/レイヤー(/ zオーダー?)に詳細ウィンドウを配置して、両方を重ねて表示できるようにし、詳細ウィンドウを上に表示することです。それらが開かれたときのメインフォーム。

編集:重要な場合、詳細ウィンドウには何も表示されずWindowStyleAllowsTransparencytrueに設定されます。また、ウィンドウのタイトルがなく、ウィンドウがタスクバーに表示されません。これを理解しようとすると、に設定しようとしましたWindowStyleSingleBorderWindow、同じ問題が発生しますが、詳細ウィンドウが描画されているときに詳細ウィンドウの境界がメインフォームの上に表示され、メインの後ろに押し出されます。形。詳細ウィンドウが表示された後、ダブルクリックハンドラーは基本的にメインフォームを前面に引っ張っていますか?

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

android - Androidでビューの下に線を引く

ビューに線を描画するために onDispatchDraw(Canvas canvas) メソッドを使用しています。canvas.drawLine() を呼び出すと、常にすべてのビューの上に線が描画されます。ボタンの下に、canvas.drawLine() を使用してレイアウト内の別のビューの上に線を描画する方法はありますか?

次のことを試しましたが、それでもボタンの上に線が引かれます。

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

c++ - モードレス、親のない wxDialog は、z オーダーで常に wxFrame ウィンドウの上にありますか?

私のプログラムは、wxFrame ベースのウィンドウと、複数のモードレスおよび親のない wxDialog ベースのウィンドウを開きます。wxDialog ベースのウィンドウが常に wxFrame ベースのウィンドウの上にあることを主張することを除いて、すべてが美しく機能します。

について知っていてwxDIALOG_NO_PARENT、それを使っています。wxFrame を閉じてもダイアログは開いたままなので、wxFrame ウィンドウを親として持つことは絶対にありません。

(問題があれば、私は C++、wxWidgets 2.8.something を使用し、Ubuntu Linux で実行しています。私のプログラムは他のプラットフォームでコンパイルする準備ができていないため、他のプラットフォームではまだテストしていません。)

すべてのウィンドウが完全に独立して動作するようにしたいので、ユーザーは wxFrame ウィンドウと wxDialog ウィンドウを使用できます。誰かが私を正しい方向に向けることができますか?

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

c++ - MFC: ダイアログを常に他のダイアログの小さなセットの上に作成する

Google を利用すると、すべての「常に最優先」のダイアログを作成する方法に関する結果が得られます。しかし、これは私が望むものではありません。

膨大な量のダイアログがあるとします。このダイアログの山の中で、そのうちの 3 つ、A、B、C について考えてみましょう。

私は C が常に A と B の上にあることを望んでいますが、残りの山はそうではありません。言い換えると、C がアクティブな場合は上にある必要があり、そうでない場合は、A と B が関係する場合を除き、別のアクティブなダイアログの下になります。

ちなみに、AとBは同時に出現することはありません。

それで、私がそれを行うことができた唯一の方法は、毎回 C を破棄し、新しい親 (表示されている人に応じて A または B) で再作成することです。子ダイアログが作成されると、所有権を譲渡できないため、破棄する必要があることを学びました。

私はそれを破壊し続ける余裕はありません(長い話です)。

これを達成する他の方法はありますか?ありがとう!

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

ios - サブビューの上にdrawRect

サブクラスUIView化してメソッドを追加しましたdrawRect。次に、このカスタムクラスを使用してビューを定義し、それにサブビューを追加します。

問題はdrawRect、サブビューの下に何かを描画しているように見えることです(したがって表示されません)。

drawRectカスタムのサブビューの上に描画するものを表示したいUIView

これは可能ですか?

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

c# - アクティブ化するときのMDIウィンドウのzオーダーの奇妙さ

多くのMDI子ウィンドウを備えたアプリケーションがあります。通常、ユーザーはウィンドウのクライアント領域と非クライアント領域の両方をクリックすることで、1つのMDI子ウィンドウを前面に表示できます。これは通常、マウスボタンを押すとすぐに発生するようです。

ここで、ユーザーがクライアント領域でMDI子フォームをクリックすると、ウィンドウが期待どおりに前面に表示されないことがあります。ただし、フォームのタイトルバーをクリックすると、ウィンドウが前面に表示されますが、マウスボタンを離した場合に限ります。これには、ユーザーが1つのMDI子ウィンドウを別のウィンドウの後ろにドラッグできるという効果があり、マウスボタンを離すと、ドラッグされたウィンドウが前面に表示されます。

その結果、複数のMDI子ウィンドウが部分的に重なり合っている場合、通常のようにウィンドウを前面に表示することはできません。これはフォーカスとは無関係のようです。MDI子ウィンドウはフォーカスを持つことができますが、それでも別のMDI子ウィンドウの背後にあります。

さらに、これは、アプリケーションをしばらく使用した後、ランダムに発生するようです。ユーザーから送信されたシリアル化されたプログラム状態(「保存」ファイル)を使用してバグを再現できます。

私の質問には2つの部分があります。これが発生する理由と、プログラムをデバッグしてこれが発生する理由を見つけるにはどうすればよいですか。

ウィンドウメッセージWM_ACTIVATE(または同様のもの)が適切に処理されていないようですが、これはC#アプリケーションであり、メッセージキューで異常なことは何もしていません。

編集:ここにspy++からのいくつかの追加情報があります。

以下は、すべてが正常に発生した場合のspy++からの出力です。

バグが再現された状態でアプリケーションを実行して出力を取得すると、クライアント領域をクリックすると次のようになります。

メッセージ番号を見ると、発生していないメッセージがたくさんあることがすぐにわかります。具体的には、WM_CHILDACTIVATEです。

解決

MdiParentウィンドウが表示される前に、フォームの1つが設定されていませんでした。

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

wpf - 絶対 z オーダー (複数の DataTemplate にわたる)

NodeVM と LinkLineVM (CompositeCollection を使用) の 2 種類のオブジェクトを表示する Canvas ItemsPanel を持つ ListBox があります。各 VM オブジェクトには DataTemplate があります。
NodeVMs DataTemplate にはTextBlock(A)
LinkLineVMs DataTemplate にはLine(B) とTextBlock(C) があります。次の絶対 z オーダーを取得する方法: A (上)、C、B (下)。

絵は千の言葉に値する、と誰かが言ったことがあります。緑色の四角形 == NodeVM、線 + 小さなボックス == NetworkLinkVM。A はリンク [-30] が他のリンクを通過するため問題ありませんが、リンク [-31] ボックスがリンク [-32] の下に隠されているため、B は問題です。 ここに画像の説明を入力

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

wpf - DataTemplate から ItemsPanel プロパティにアクセスする

Canvas ItemsPanel を含む ListBox のコンテキストでは、複数の DataTemplates 内の各コントロールの Cavas.ZIndex にアクセスする必要があります (リストには複数のオブジェクト タイプが表示されます)。を使用するのに十分ではありません

それぞれにいくつかのコントロールを持ついくつかのデータ テンプレートがあり、各コントロールの絶対 zindex を制御したいと考えています。これは可能ですか?

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

forms - 上へのフォームの上昇を無効にする

z オーダーの一番下に設定すると、そこにとどまるフォームが必要です。私は試した:

他のアプリと重ねると、必要に応じて一番下に留まります。しかし、それをクリックすると、一番上に上がります。次に試しました:

このWebサイトのその他のさまざまなスイッチ... http://msdn.microsoft.com/en-us/library/ms633545.aspx

しかし、それはまだトップに上がります。

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

c# - フォローアップ: WPF でウィンドウを最前面に持ってくる

現在のプロジェクトにボタンを追加しようとしています。このボタンを押すと、ウィンドウが x 秒間背面に移動し、ユーザーが他のウィンドウで作業できるようになり、自動的に前面に戻ります。組み合わせて WPF ウィンドウを背面に送信する方法は? WPF でウィンドウを前面に移動し、BackgroundWorker とともに、この 99% を完了することができました。ボタンが押されると、ウィンドウは背面に移動し、指定された秒数後に戻ります。問題は、別のウィンドウ (Opera、Word など) に移動すると、後ろから戻らないことです。フラグで遊んでみましたが、うまくいかないようです。これは可能ですか?もしそうなら、どのように?

ありがとう!