問題タブ [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.
dockpanel-suite - DockPanelSuite LoadFromXML が機能しませんか?
Loadfromxml が機能していないようです。XML ファイルを読み取り、ロードするフォームを返す関数に分岐し、フォームを返しますが、フォームをロードすることはありません。それらは決して現れません。私が間違っていることはありますか?以下のコードスニペット
.net - DockPanel スイートのタブの並べ替え
私のプロジェクトの 1 つは、WeiFen Luo の DockPanel Suite http://dockpanelsuite.com/を使用しています。現在、顧客は、ドキュメント ビューで特定の順序でタブを並べ替えるよう要求しています。
タブはすべて同じ DockContent 派生クラスのインスタンスです。ソートするフロートを運びます。
DockPanel.Contents は、悲しいことに、他のコレクションのような Sort メソッドを提供しない DockContentCollection です。また、正しい順序で追加するためにそこから DockContents を削除することもできません。
ただし、ユーザーはタブをドラッグして別のタブにドロップして順序を変更できます。
プログラムで「tab1をtab2の場所に挿入する」方法を知っている人はいますか?
ライブラリに依存するフォーラムで質問する必要があることはわかっています。そこにある「質問の仕方」のエントリがここにつながります。
c# - DockPanel Suite で水平ドックよりも垂直ドックの優先度を設定する
DockPanel Suiteを使用していますが、ドキュメントが比較的少ないために問題が発生しました。
「サイド」と呼ばれる左右にドッキングするパネルと、「ボトム」と呼ばれる下部にドッキングするパネルの 2 つのドッキングされたパネルがあります。Side でフォームの高さを埋め、Bottom で残りを埋めたいと思います。
だから私が目指しているのはこれです:
しかし、私が代わりに持っているのはこれです:
プログラムを実行すると、2 番目のバリアントが得られます。Bottom をドラッグしてフロートさせてからドラッグすると、希望どおりにドッキングされますが、プログラムでこれを実現することはできません。
これが私のコードです:
順序を変更してみましたが、効果がありません。さまざまなプロパティとメソッドを調べてみましたが、ドキュメントがあまりないため、ここでは IntelliSense はあまり役に立ちません。
アップデート
2 人が提案したように、サイド パネルを前面に移動したり、ボトム パネルを背面に移動したりしてみましたが、効果はありませんでした。そのための完全なコードは次のとおりです。
ユーザーの Lex Li は、最初にドキュメントを作成してから、その下部にドッキングすることについて別の提案をしました。次のように、下のウィンドウに何も表示されないことを除いて、それは機能しているように見えました。
これを作成するために使用したコードは次のとおりです。
メインドックパネルのDocumentStyle
プロパティをDockingMdi
またはDockingWindow
に設定することでこれを回避できます。これにより、次のようになります。
しかし、それらのタブはそこにありますが、これは望ましくありません。DockingSdi
私はスタイルを使用することを好みます。
だから、私は次のようにプログラムで一番下までドッキングを達成しようとしています: ドックの場所を表示しています...
そして最後に、ドッキングされたウィンドウ
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 が存在し、ハンドルがあるため、何が起こっているのかわかりません。
何か案は?
dockpanel-suite - DockPanelSuite でのペイン固有の情報の保存と復元
そのため、 dockpanel-suiteでタグ付けされた既存の回答を調べましたが、探しているものが見つかりませんでした (これを入力すると、同様の質問領域にも表示されません)。 まず、ワークスペース全体の保存と復元について質問しているわけではないことに注意してください。
これがシナリオです。ユーザーの要求に応じて追加されるグラフィカル ウィンドウ (「タイムライン」と呼びます) があります。追加されると、メイン フォームの一番下の領域に自動的にドッキングされます。次に、タイムライン ウィンドウを別の場所に再ドッキングし (エッジにドッキングするか、別のドッキング ペイン内にドッキングすることができます)、ドッキング動作を変更します (フローティング、自動非表示、タブなど)。
実証可能な例は、Visual Studio にあります。右側のドッキングされたペイン内のタブにソリューション エクスプローラーがあり、ソリューション エクスプローラーを閉じる場合は、[表示] -> [ソリューション エクスプローラー] に移動して再度表示すると、正しい場所に復元されます。
ここで、ユーザーはタイムライン ウィンドウの[x]をクリックしてタイムライン ウィンドウを完全に閉じます。その後、ユーザーはそれをアプリケーションに再度追加するように要求します。最後に閉じたときの最後のドック状態と位置に戻したいです。
今、私はContentRemoved
イベントでペインのクローズをキャッチできるように見えますが、そこe.Content.DockHandler.Pane,
e.Content.DockHandler.PanelPane
にe.Content.DockHandler.FloatPane
はすべてがありnull
、以前のドックジオメトリを取得する明白な方法はありません. e.Content.DockHandler.DockPanel
有効ですが、それは親/ルートドッキングパネルであり、SaveAsXml(...)
ワークスペース全体を取得するため、呼び出しは何もしません。
ここで捕獲できたとしても、必要な情報です。しかし、私も単純に何かを呼び出すことはできないようLoadFromXml(...)
です。
DockContent
オブジェクトが に追加される前にそれを実行しようとするとDockPanel
、DockHandler.DockPanel
メンバーが null になるため、取得できたとしても、XML を復元する場所がないように見えます。
DockPanel
ここで私を助けることができるように見える他のイベントはありません。
だから - これを行う方法はありますか?それを行う正しい方法は何ですか? 閉じたときにドック情報をXMLとしてキャプチャして後で復元しようとして、間違ったツリーを吠えていないことを確認したいと思います。
ウィンドウを実際に閉じるのではなく、ドッキングを解除して非表示にするというアイデアをいじりましたが、まだそこまで探求していません。イベントをフックする場合と同じですが、ドッキング/フローティング/その他DockChanged
のオブジェクトでは発生しないようです。DockContent
理由はわかりません。
また、最後のドッキング親が存在しなくなった場合などのシナリオを正しく処理できるように、ソリューションは十分に堅牢である必要があります。たとえば、どこかにタブとしてドッキングされていたが、現在はその親ウィンドウ (タブを含む) も閉じられている場合。LoadFromXml,
まだテストできていないため、それが正しい方法であるかどうか、このシナリオを処理するのに十分な堅牢性があるかどうかはわかりません。