問題タブ [avalondock]
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.
c# - WPF と Avalon Dock を使用したドラッグ アンド ドロップ
メイン ウィンドウ用の次のコードのサブセットを含む WPF アプリがあります。
DocumentContent
に追加するコードもありますDocumentPane
。
私が実装したドラッグ アンド ドロップ機能は、documentPane に何かが追加された後にのみ機能します。子オブジェクトが作成されるまで documentPane がドロップを受け入れないのはなぜですか?
c# - AvalonDockでDockableContentスタックを作成する
AvalonDockを使用してタブで移動する代わりに、ドッキング可能な2つのコンテンツペインの初期起動状態をスタックするにはどうすればよいですか?
したがって、この場合、アプリは2つのドッキング可能なコンテンツとしてタブとして読み込まれ、一方が他方の後ろに隠れます。一方、私は1つのパネルを他のパネルの上に(積み重ねて)後ろに配置したくないのです。
wpf - 高さを埋めないWPFピン留めオプション
側面にパネルを表示し、それらを固定/固定解除できるWPFオプションを探しています。基本的に、これはウィンドウを意味し、中央にメインコントロールがあり、このメインコントロールの左側と右側の両方に複数の異なるパネルがあります。これらのパネルはデフォルトで折りたたまれており、ヘッダーのみが表示されています。これらのパネルにカーソルを合わせると、メインコントロール上に展開されます(メインコントロールを移動せずに)が、このパネルを固定して永続的に展開するオプションもあります。今回は、メインセンターコントロールのサイズを強制的に変更します。
これはほとんどのドッキング制御オプションとほとんど同じように聞こえます。実際、Avalon とMixModes Synergyを見てきましたが、これらのオプションの問題は、パネルが高さ全体を埋め尽くすことです。特定の高さのパネルにカーソルを合わせたときに、そのパネルが画面に表示されないようにしたいのですが、それを行うものは他に見つかりません。他の誰かがこのようなものを見ましたか?
基本的に、これまでのところ、これを行う方法についての私自身のアイデアは、パネルをあるピン留めされたコントロールから別のピン留めされていないコントロールにプログラムで移動することを含みますが、これはクレイジーに醜く聞こえます。
c# - 動的にタブを作成し、そこにビューを挿入します
AvalonDock を使用して vs のようなドッキング スタイルを実現し、prism を使用してアプリケーションにビューを挿入します。
基本的に、ユーザーはサイドにパネルを持ち、ビューごとに 1 つのボタンをロードできます。ボタンを押すたびに、AvalonDock の DocumentPane に新しいタブを作成し、適切なビューを挿入したいと考えています。
このようなシナリオにはプリズムが適しているという印象を受けましたが、わかりません。
また、Markus Raufer による DocumentPane および DockablePane リージョン アダプターに出くわし、プロジェクトに追加して、ブートストラップにマッピングを登録しました。
これにより、ソリューションをコンパイルすることができます (そのため、私は近づいていると推測しています)。
これまでのところ、私はこれを行います:
私Shell
には次のような場所があります:
私のコード ビハインドでは、ブートストラップなどの後、次のような場所があります。
この行を実行してもユーザーには何も表示されませんが、2 回実行すると、ビューが既に登録されているというエラーが発生します (そのため、何かが追加されました!)。
さらに、通常の ContentControl を配置し、それをマークしてprism:RegionManager.RegionName="{x:Static inf:RegionNames.MainTabControlRegion}
から、AvalonDock の DocumentPane に追加するのとまったく同じ方法で UserControl を追加すると、機能します。気紛れ
私は何を間違っていますか?
ありがとう、
バブ。
編集:
MainTabControlRegion をこのように定義すると、最初のビューが実際に追加されます。別のビュー (別の UserControl) を追加すると表示されませんが、WPF インスペクターはそこにあると言います。
私の観点からは、確かに UserControls をリージョンに追加していますが、DocumentPane に追加した UserControl ごとに新しいタブを作成する方法がわかりません。
私はそれについて何も指定していないので、おそらくコードが不足していますか?
ユーザーコントロールを追加してそこに挿入するたびに新しいタブを作成したい。
編集 2: 解決策-->ここ
c# - AvalonDock:DocumentPaneバインディングを使用している場合、新しいDocumentContentアイテムのタブはクリックできません
以下のxamlを使用して、DocumentPaneをプロパティObservableCollection<DocumentContent>DocumentContentにバインドしようとしています。
私の問題は、新しいDocumentContentオブジェクトがObservableCollectionに追加されると、タブがDocumentPaneに正しく追加されますが、タブをクリックできないことです。
データバインディングに切り替える前は、document.Items.Add(new DocumentContent())を使用していましたが、これは期待どおりに機能しました。
タブがデータバインディングを介して追加された場合にタブがクリックできない理由を誰かが知っていますか?
wpf - WPF AvalonDock ExpressionDark
私は WPF と AvalonDock を使用しており、AvalonDock.theme.ExpressionDark を適用したいと考えています。
ただし、このテーマを適用すると、ドッキング方向インジケーターが表示されません。
AvalonDock を通常どおり (追加のテーマを適用せずにデフォルトのテーマを使用して) 適用すると、DockablePane または DocumentPane をドラッグしたときにドッキング方向インジケーターが表示されます。
ただし、ExpressionDark テーマを適用した後、このドッキング方向インジケーターは表示されません。
誰かが理由を知っていますか?どうすれば解決できますか?
どうもありがとうございました。
c# - AvalonDock ドッキング解除およびドッキング イベントをキャッチする方法は?
WPF プロジェクトで AvalonDock を使用しています。また、ドッキングおよびドッキング解除イベントの処理方法を知りたいです。ドラッグ中に MouseDown と Up を試しましたが、明らかな成功はありません。
...
...
wpf - AvalonDock ドキュメント タブ パネルのスタイリングと編集に問題がある
AvalonDock の VS2010 スタイルを VS2010 のようにもう少し機能させる方法を見つけようとしています。私が直面している問題は、ヘッダー領域に収まりきらないほど多くのタブがある場合、それ以上のタブがあることをユーザーに示していないことです。
タブヘッダーが切り取られて表示されていないと思いました。VS2010 スタイルのカスタム コピーがあり、DocumentPane スタイルに移動しました。
そして、タブヘッダー(私は思う)を「ad:DocumentTabPanel」として見つけました。これを ScrollViewer でラップしました。
スクロール ビューアは、カスタム スタイルを持つように設定されています。
私が抱えている問題は、大量のタブをロードしてもスクロールが機能しないことです。これは私のスタイリングの問題ではないと思います。タブ ヘッダーが VisualTree にないか、表示が折りたたまれているようです。AvalonDock のソースをしばらく調べてみましたが、ヘッダーがどのように隠されているのかわかりません。
AvalonDock クラスのいくつかは、追加のプロパティが必要だったため、すでにサブクラス化する必要がありました。
誰かがタブをスクロールする解決策を説明/助けてくれますか?
c# - 複合ビュー - ビューはリージョン エラーに既に存在します
私は WPF/Prism 4/AvalonDoc アプリケーションに取り組んでいます。
私のビューの 1 つが非常に複雑で、ViewModel が巨大で扱いにくくなっています。そこで、独自の ViewModel を持つ小さなビューに分割することにしました。
ビューにリージョンを配置し、「マスター」ViewModel コンストラクターから regionManager.RegisterViewWithRegion メソッドを使用してサブビューをそのリージョンにロードしました。
ビューのインスタンスが 1 つだけ読み込まれている場合、これは期待どおりに機能します。しかし、その画面の 2 番目のインスタンス (DocumentContent として AvalonDock の DocumentPane にロードされる) を開くと、「View already exists in region」というエラーが表示されます。
可能であれば、地域に一意の名前を付けることは避けたいと思います。「マスター」ビューの特定のインスタンスにサブビューを追加していることを示す方法はありますか? これを行う方法について何かアドバイスはありますか?