問題タブ [dockpanel-suite]

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 に答える
556 参照

dockpanel-suite - DockPanelSuite LoadFromXML が機能しませんか?

Loadfromxml が機能していないようです。XML ファイルを読み取り、ロードするフォームを返す関数に分岐し、フォームを返しますが、フォームをロードすることはありません。それらは決して現れません。私が間違っていることはありますか?以下のコードスニペット

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

.net - DockPanel スイートのタブの並べ替え

私のプロジェクトの 1 つは、WeiFen Luo の DockPanel Suite http://dockpanelsuite.com/を使用しています。現在、顧客は、ドキュメント ビューで特定の順序でタブを並べ替えるよう要求しています。

タブはすべて同じ DockContent 派生クラスのインスタンスです。ソートするフロートを運びます。

DockPanel.Contents は、悲しいことに、他のコレクションのような Sort メソッドを提供しない DockContentCollection です。また、正しい順序で追加するためにそこから DockContents を削除することもできません。

ただし、ユーザーはタブをドラッグして別のタブにドロップして順序を変更できます。

プログラムで「tab1をtab2の場所に挿入する」方法を知っている人はいますか?

ライブラリに依存するフォーラムで質問する必要があることはわかっています。そこにある「質問の仕方」のエントリがここにつながります。

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

c# - DockPanel Suite で水平ドックよりも垂直ドックの優先度を設定する

DockPanel Suiteを使用していますが、ドキュメントが比較的少ないために問題が発生しました。

「サイド」と呼ばれる左右にドッキングするパネルと、「ボトム」と呼ばれる下部にドッキングするパネルの 2 つのドッキングされたパネルがあります。Side でフォームの高さを埋め、Bottom で残りを埋めたいと思います。

だから私が目指しているのはこれです: サイドドックフィル

しかし、私が代わりに持っているのはこれです: ボトムドックフィル

プログラムを実行すると、2 番目のバリアントが得られます。Bottom をドラッグしてフロートさせてからドラッグすると、希望どおりにドッキングされますが、プログラムでこれを実現することはできません。

これが私のコードです:

順序を変更してみましたが、効果がありません。さまざまなプロパティとメソッドを調べてみましたが、ドキュメントがあまりないため、ここでは IntelliSense はあまり役に立ちません。

アップデート

2 人が提案したように、サイド パネルを前面に移動したり、ボトム パネルを背面に移動したりしてみましたが、効果はありませんでした。そのための完全なコードは次のとおりです。

ユーザーの Lex Li は、最初にドキュメントを作成してから、その下部にドッキングすることについて別の提案をしました。次のように、下のウィンドウに何も表示されないことを除いて、それは機能しているように見えました。

タイトルバーなし

これを作成するために使用したコードは次のとおりです。

メインドックパネルのDocumentStyleプロパティをDockingMdiまたはDockingWindowに設定することでこれを回避できます。これにより、次のようになります。

タブ

しかし、それらのタブはそこにありますが、これは望ましくありません。DockingSdi私はスタイルを使用することを好みます。

だから、私は次のようにプログラムで一番下までドッキングを達成しようとしています: ドックの場所を表示しています... ドッキング開始

そして最後に、ドッキングされたウィンドウ ドッキング

0 投票する
0 に答える
566 参照

c# - WeifenLuo DockPanelSuite で新しいドキュメントを開くと、オブジェクト参照がオブジェクトのインスタンスに設定されていないため失敗する

以下のコードで非常に苛立たしいエラーがスローされています。

エラー: スタック トレース

WeifenLuo.WinFormsUI.Docking.DockPanel.FocusManagerImpl.SuspendFocusTracking() で WeifenLuo.WinFormsUI.Docking.DockPanel.SuspendLayout(Boolean allWindows) で WeifenLuo.WinFormsUI.Docking.DockContentHandler.Show(DockPanel DockPanel、DockState DockState) で WeifenLuo.WinFormsUI. Docking.DockContent.Show(DockPanel、dockPanel、DockState、dockState)、C:\Users\Dave\Documents\Visual Studio 2015\Projects\Imogen\Imogen\frmMain.cs:line 244 の Imogen.frmMain.ProcessUnReported(EUReported eur) で

エラーメッセージ:

オブジェクト参照がオブジェクト インスタンスに設定されていません。

ご覧のとおり、私がやっていることは、新しいフォームを作成して表示しようとしているだけです。.Show(dockPanel, DockState.Document) The Form と DockPanel が存在し、ハンドルがあるため、何が起こっているのかわかりません。

何か案は?

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

dockpanel-suite - DockPanelSuite でのペイン固有の情報の保存と復元

でタグ付けされた既存の回答を調べましたが、探しているものが見つかりませんでした (これを入力すると、同様の質問領域にも表示されません)。 まず、ワークスペース全体の保存と復元について質問しているわけではないことに注意してください。

これがシナリオです。ユーザーの要求に応じて追加されるグラフィカル ウィンドウ (「タイムライン」と呼びます) があります。追加されると、メイン フォームの一番下の領域に自動的にドッキングされます。次に、タイムライン ウィンドウを別の場所に再ドッキングし (エッジにドッキングするか、別のドッキング ペイン内にドッキングすることができます)、ドッキング動作を変更します (フローティング、自動非表示、タブなど)。

実証可能な例は、Visual Studio にあります。右側のドッキングされたペイン内のタブにソリューション エクスプローラーがあり、ソリューション エクスプローラーを閉じる場合は、[表示] -> [ソリューション エクスプローラー] に移動して再度表示すると、正しい場所に復元されます。

ここで、ユーザーはタイムライン ウィンドウの[x]をクリックしてタイムライン ウィンドウを完全に閉じます。その後、ユーザーはそれをアプリケーションに再度追加するように要求します。最後に閉じたときの最後のドック状態と位置に戻したいです。

今、私はContentRemovedイベントでペインのクローズをキャッチできるように見えますが、そこe.Content.DockHandler.Pane, e.Content.DockHandler.PanelPanee.Content.DockHandler.FloatPaneはすべてがありnull、以前のドックジオメトリを取得する明白な方法はありません. e.Content.DockHandler.DockPanel有効ですが、それは親/ルートドッキングパネルであり、SaveAsXml(...)ワークスペース全体を取得するため、呼び出しは何もしません。

ここで捕獲できたとしても、必要な情報です。しかし、私も単純に何かを呼び出すことはできないようLoadFromXml(...)です。

DockContentオブジェクトが に追加される前にそれを実行しようとするとDockPanelDockHandler.DockPanelメンバーが null になるため、取得できたとしても、XML を復元する場所がないように見えます。

DockPanelここで私を助けることができるように見える他のイベントはありません。

だから - これを行う方法はありますか?それを行う正しい方法は何ですか? 閉じたときにドック情報をXMLとしてキャプチャして後で復元しようとして、間違ったツリーを吠えていないことを確認したいと思います。

ウィンドウを実際に閉じるのではなく、ドッキングを解除して非表示にするというアイデアをいじりましたが、まだそこまで探求していません。イベントをフックする場合と同じですが、ドッキング/フローティング/その他DockChangedのオブジェクトでは発生しないようです。DockContent理由はわかりません。

また、最後のドッキング親が存在しなくなった場合などのシナリオを正しく処理できるように、ソリューションは十分に堅牢である必要があります。たとえば、どこかにタブとしてドッキングされていたが、現在はその親ウィンドウ (タブを含む) も閉じられている場合。LoadFromXml,まだテストできていないため、それが正しい方法であるかどうか、このシナリオを処理するのに十分な堅牢性があるかどうかはわかりません。

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

c# - DockPanelSuite でパネル間のドキュメント領域を非表示にする方法

左と右のウィンドウのみで DockPanelSuite を使用してインターフェイスを開発しようとしています (同じに見えるようにしたい)。DockPanelSuite を使用すると、ドキュメント領域の幅を設定できず、パネル間に隙間ができます (下の画像の緑色の領域を参照)。DockPanel Suite 用のドキュメントを非表示または削除する方法を知っている人はいますか? 以下は、パネルを表示するために使用するコードです。

フォーム間のギャップ