問題タブ [gridsplitter]
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# - GridSplitter オートサイズ
問題が発生しましたGridSplitter
簡単なコード例:
これにより、 で垂直方向に区切られた 2 つのグリッドが作成されますGridSplitter
。
私が達成したいのはGridSplitter
、グリッドのコンテンツに自動的に整列することです。たとえば、下のグリッドに折りたたみ可能な要素がある場合、要素を折りたたむと上のグリッドが大きくなるようにします。広げたら上Grid
が小さくなるはず。
どうすればいいですか?後で私はGrids
3 つGridSplitter
の ´ を持つ 4 を持ちます... したがって、ソリューションは複数GridSplitter
の ´ でも同様に機能するはずです。
[編集]:
私のxaml:
wpf - Gridsplitter prevents grid columns to be resized
I'm trying to hide first 2 columns of a Grid
when a Button
is clicked. My Grid
layout has 3 columns, one with a grid, the second with a grid splitter and the third one with another Grid
which has the Button
.
When I run my program with the below code, it collapses the first 2 columns on click of the Button
properly as expected and resizes the third grid, however the moment I resize the grid using the splitter, this does not work anymore. It hides the columns, however the third column is not resized to fill the Window
. I want the first 2 columns to be collapsed and the third column to fill the whole area of the window(which happens if I do not resize using the splitter).
The xaml is as below:
and the Button.click
event is handled as below:
wpf - scrollviewerおよびminWidthと組み合わせた場合、gridsplitterが期待どおりに動作しない
- 背景コンテナとしてグリッドがあります
- このグリッドにはscrollviewerが含まれているため、ウィンドウを上にサイズ変更するとコンテンツも一緒に拡張されますが、ウィンドウを下にサイズ変更すると、svのコンテンツのminWidthに到達するとスクロールバーがscrollviewerに表示されます
- このscrollviewerには、2列のグリッドが含まれています
- このグリッドには、各列に1つのscrollviewerが含まれ、各列にはグリッドが含まれます。
- 最初の列にグリッドスプリッターがあるので、列のサイズを変更できます
免責事項:これはこのレイアウトを整理するための最適な方法ではないことはわかっていますが、これは実際には、はるかに複雑なレイアウトで発生した問題を再現するために見つけた最も単純な表現であるため、レイヤーを再編成するソリューションを提供しないでください
これがxamlです:
目標は次のとおりです。-ウィンドウのサイズを上に変更すると、すべてが拡大縮小されます-サイズを下に変更すると、minWidthに到達すると、最上部のスクロールビューアのスクロールバーが表示され、コンテンツの縮小が停止します。(この部分は正常に機能します)-一番上のscrollviewerのサイズに関係なく、gridsplitterを使用して両方の列のサイズを変更できます-1つの列の最小幅に達すると、この列のscrollviewerにスクロールバーが表示され、そのコンテンツの縮小が停止します
問題:この2番目の部分は決して起こりません。2つの子グリッドのminWidthのいずれかに到達するまでサイズを変更できます。その後、gridsplitterの移動が停止し、それ以上縮小できず、スクロールバーが表示されません。
一番上のグリッドとそれに関連するscrollviewerを削除すると、期待どおりに機能することに気付きました。
内側のグリッドをスクロールビューアーに配置したことで、グリッドスプリッターと内側のスクロールビューアーの動作が変わる理由がわかりません。解決策を知っている人は誰でも、喜んでいます。
wpf - リストボックスで GridSplitter をスワイパーとして使用する
ウィンドウいっぱいにコンテンツが引き伸ばされた がありListBox
、その中に 2 つの列 ( を含む 3 つ) を持つグリッドがありますGridSplitter
。
GridSplitter
スワイパーのように使用して、どちらかの列をいくらでも非表示/表示できるようにしたいだけです。つまり、100% 左側、それぞれ 50%、または 100% 右側などです。
私は私の人生のためにそれをさせることはできません。両側の要素には、希望する独自のサイズがあり、素朴な*
アプローチでは、 をそのサイズより小さくすることはできませんGridSplitter
。固定の列サイズを使用すると、目的のサイズよりも小さく縮小できますが、 のサイズを変更するとGridSplitter
、 の端の幅を超えてしまい、コンテンツが伸びなくなります。Window
Window
私の問題を最もよく説明するXamlPadドキュメントは次のとおりです。
最も奇妙なことに、ListBox を持っていない場合、この問題は発生しません。その後、私が望むとおりに機能します。
とにかく、助けてくれてありがとう、それはすべて大歓迎です-これは私を夢中にさせています:)
wpf - 親ウィンドウのサイズを変更するときの WPF GridSplitter の動作
次のように GridSplittler XAML を定義しました。
これにより、間にグリッド スプリッターがある 2 つの列が作成され、グリッド スプリッターが左右にドラッグされると、列のサイズが正しく変更されます。ウィンドウ全体のサイズを変更する場合、左の赤い列の幅を固定したままにし、右の緑の列の幅を変更します (ウィンドウのサイズが変更されるため)。Visual Studio アプリケーション全体のサイズを変更し、ソリューション エクスプローラーの幅は固定されたままですが、コード タブの幅が変更された場合と同じ効果があります。また、SQL Server Management Studio と同じです。オブジェクト エクスプローラーの幅は固定のままですが、SQL タブの幅が変わります。これら 2 つの例では、より複雑なドッキング コントロールを使用していることに気付きましたが、WPF GridSplitter を使用して同じ結果を得たいと考えていました。
編集:マシューの提案に基づいて、必要なのは最初の列定義に初期幅を与えることだけでした(以下に200を使用して表示)。
ウィンドウのサイズを変更すると、緑の境界線の幅のみが変更され、赤の境界線の幅は固定されたままになります。ありがとう!
wpf - GridSplitter を移動した後、レイアウトが正しく機能しません
私の目的は次のとおりです。 でTabItem
名前付きの「タブ」をダブルTabControl
クリックするTabControl
と、折りたたまれ、別のダブルクリックで展開されます。しかし、 を移動して「タブ」をダブルクリックして折りたたむと、列の高さが の高さと等しくない、つまり従わないことGridSplitter
が正しく機能しません。 「TabControl」。TabControl
TabControl
GridSplitter
.xaml
.cs
c# - Gridsplitter: 行の高さをウィンドウ サイズに制限する
グリッドスプリッターの実験を始めたばかりで、非常に奇妙な動作に出くわし、修正できないようです。どうやら他の人にも同様の問題があります (Google によると) が、役立つコメントはありませんでした。
2行のグリッドがあります。起動すると、一番下Hight
の行は 250 です。一番上の行は で残りを取ります*
。スプリッターで行のサイズを変更すると、一番上の行の動作が期待どおりになります。しかし、スプリッターを上にドラッグしてプログラム ウィンドウを通過すると、一番下の行のコンテンツがウィンドウから外れます (= 消えるまで下に移動します)。各行を親コンテナーよりも大きくすることはできないと思います。
これは私のコードです。両方の行のコンテンツは再びグリッドでホストされており、わかりやすくするために削除されています。繰り返しますが、一番上の行のサイズ変更は正常に機能します。ただし、一番下の行は無限大にサイズ変更できます。をハードコーディングすると、期待どおりに動作しますMaxHeight
。ただし、それはウィンドウのサイズに依存する必要があります。
c# - WPF の 3 列グリッド内でグリッド スプリッターを希望どおりに動作させることができません
WPF といくつかのサードパーティ コントロール (Telerik) を使用した次のグリッドがあります。
現在、ウィンドウのサイズ変更中に列0(左側)のグリッドのサイズが変更されないようにしようとしています。列「0」の幅を静的な 150 または自動に設定することで、この効果を得ることができました。ただし、これを行うと、グリッド スプリッターは列 2 の最小幅を尊重しなくなり、画面からドラッグできるようになりました。列 0 と 2 の両方をスターの幅に設定することで (コードで現在使用している方法で)、最小幅が尊重されます (列は定義された 150 と 80 を超えて縮小できません) が、サイズは変更されません。 (左側の列は右側の列に比例してサイズ変更されます)。サイズ変更とグリッドスプリッターの両方を同時に機能させたいと思います。説明が不十分だった場合や、さらに情報が必要な場合はお知らせください。