問題タブ [sizetocontent]

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 投票する
5 に答える
72912 参照

.net - サイズ変更後にエキスパンダーを使用してコンテンツに合わせて WPF ウィンドウのサイズを維持するにはどうすればよいですか

のWPFウィンドウがありSizeToContent="Height"ます。このウィンドウには、<Expander />最近のアクティビティのリストを表示する が含まれています。私が望むのは、エキスパンダーが展開されると、ウィンドウのサイズが比例して大きくなることです。非表示にすると、ウィンドウは再び比例してサイズ変更されます。ウィンドウのサイズが変更された場合、エキスパンダーとそれに含まれるリスト ビューは、新しいスペースを使用するように拡張する必要があります。(これを理解するのに役立つ色を気にしないでください):

通常表示

代替テキスト http://www.deploylx.com/so/wpfexpander/Open.png

折りたたまれた

代替テキスト http://www.deploylx.com/so/wpfexpander/Closed.png

新しいスペースにサイズ変更

代替テキスト http://www.deploylx.com/so/wpfexpander/Expanded.png

これまでのところ、これはうまく機能します。<Expander />ウィンドウのサイズを変更した後に が折りたたまれたときに問題が発生します。ウィンドウが再び折りたたまれるのではなく、リスト ビューが単に非表示になります。

サイズ変更後に折りたたまれました

代替テキスト http://www.deploylx.com/so/wpfexpander/Collapsed.png

私の直感ではHeight、ウィンドウのサイズが変更され、SizeToContentプロパティがオーバーライドされると、ウィンドウの が設定されていることがわかります。では、ウィンドウのサイズが変更された後、ウィンドウのサイズをコンテンツの動作に保つにはどうすればよいでしょうか?

現在の XAML:

更新:エキスパンダーの Collapsed イベントをリッスンして、WindowsSizeToContentプロパティをリセットしようとしました。これはほとんど機能します。ウィンドウが再び折りたたまれますが、再度展開すると元の 100 ピクセルの高さに戻ります。この情報を保存してキャプチャすることは可能ですが、ハッキングの匂いがし、エラーが発生しやすくなります。

0 投票する
4 に答える
5436 参照

wpf - wpf センターの子ウィンドウが sizetocontent で機能しない

に設定SizeToContentするとWidthAndHeightWindowStartupLocation="CenterOwner"正しく動作しません。新しいウィンドウの中心が親の所有者の中心にあるのではなく、子ウィンドウの左上隅が親の中心にあるように見えます。削除すればSizeToContent、すべて問題ありません。なにが問題ですか?

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

c# - レンダリング前に SizeToContent WPF ウィンドウのサイズを決定する

時々表示される WPF アプリケーションにウィンドウがあります。表示中はアニメーションとともにフェードインし、閉じるとフェードアウトします。不透明度を変更するストーリーボードだけです。実際には、ウィンドウが実際に閉じられることはありません。不透明度は 0 にフェードアウトされ、再び表示されるまで残ります。

このウィンドウは情報ウィンドウであり、常に同じ内容が表示されるわけではありません。コンテンツ (幅と高さ) に合わせてサイズ設定されており、その点でうまく機能します。ユーザーは、表示する画面の基本領域 (TopLeft、TopRight、Center、BottomLeft、BottomRight) を選択します。

ウィンドウがフェード インする前に、コンテンツが更新されます。ウィンドウはコンテンツに合わせてサイズ変更されるため、サイズが増減します。幅と高さは変更できます。

たとえば、ウィンドウを右下隅に配置するときは、画面の WorkingArea (幅と高さ) を取り、ウィンドウの幅/高さを引いて、必要な上と左の位置を取得します。

ロジックは機能しますが、私が抱えている問題は、コンテンツが更新された後のウィンドウの高さと幅がサイズを返さず、最後に表示されたときのサイズを返すことです。これは、新しいコンテンツでまだレンダリングされていないためだと思います。

ウィンドウが前回よりも大きくなり、明らかに画面からはみ出している場合、これは私を悲しませます。

ウィンドウを OnContentRendered イベントに配置しようとしましたが、不透明度が 0 に設定されている場合、コンテンツが更新された後ではなく、ウィンドウが作成されたときに 1 回だけ発生します。

フェードインする前に、このウィンドウの正確な幅と高さを取得する方法を知っている人はいますか?

どんな助けでも大歓迎です!!

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

c# - SizeToContentを「無効にする」WPFで使用できるパネルはありますか?

基本的に、ウィンドウの特定の部分がSizeToContent(タイトルバーなど)に影響を与えないようにして、サイズがなく折りたたまれているように見せたいと思っています。これを行うために使用できるパネルはありますか(おそらくScrollViewerのように?)、または自分で作成する必要がありますか?

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

c# - UserControlのSizeToContent

実際、UserControlには、Windowにあるプロパティ'SizeToContent'がありません。

したがって、問題は次のとおりです。

UserControlでSizeToContent=WidthAndHeightの動作をシミュレートする最も簡単で正しい方法は何ですか?

UPD ...ええ、ユーザーコントロールを配置しているコンテナーに高さと幅が定義されていない場合は、自動的に取得することを想定しています。

ただし、サイズが定義された1つのuserControlをサイズのない別のuserControlに配置し、それらがすべてコンテナー内に配置されている場合は機能しません。

この場合、2番目のコントロールは取得できるすべてのスペースを占有します。

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

wpf - WPF:コンテンツに基づいてウィンドウサイズを計算する

ウィンドウの幅と高さをコンテンツに合わせる必要があります。WindowのSizeToClientプロパティが存在することは知っていますが、SizeToClientの値としてWidthAndHeightを選択すると、ウィンドウイベントが無効な方法で発生するため、Loadedイベント中にいくつかのコンポーネントで例外が発生します。 "(たとえば、Windows API CodePackのGlassWindowのSetAeroGlassTransparency)。

回避策はありますか?ウィンドウサイズを手動で計算することもできますが、ウィンドウのクロムサイズ(つまり、実際のウィンドウのコンテンツマージンサイズ)を取得する方法がわかりません。

WPFバグの詳細

よろしく-スプーク。

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

wpf - WPF-初期の高さに基づいてサイズ変更可能なウィンドウの最小高さを設定しようとしています

サイズ変更可能なウィンドウの最小高さ/最小幅を初期の高さに基づいて設定しようとしています(SizeToContent = "WidthAndHeight"の場合)。

私はいくつかの答え/解決策を見てきました:

http://weblogs.asp.net/psheriff/archive/2010/01.aspx

子プロパティに基づいてフォームのMinWidthとMinHeightを設定します

でも:

  1. 私はMVVMパターンを使用しようとしていますが、xamlでこれを実現できるようにしたいと考えています。

  2. また、MinHeightなどの値をViewModelから除外したいと思います。これらは、ビューの動作の些細な部分をViewModelに結び付けるため、そこに属しているとは思いません。これは私がUXデザイナーに任せたいものです。

私が苦労している解決策は、次のxaml/bindingを使用することです。

'Mode=OneTime'がMinHeightをウィンドウの高さの初期値にバインドすることを期待します。

しかし、それは機能しません。

誰かが理由を説明できますか?私の基準を満たす解決策はありますか?

ありがとう、

マーク

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

c# - Window の SizeToContent: 読み込みが遅いと、ウィンドウが小さく表示され、適切にサイズ変更されます

わかりましたので、コンテキスト固有の情報を表示するユーザーの要求で(プログラムの通常の操作中に)ポップアップするウィンドウがあります。このウィンドウにはたまたま多くの要素が含まれているため、読み込みに 0.5 ~ 1 秒かかります。ただし、このウィンドウにはコンテキストに応じていくつかの異なる種類の情報が含まれると予想されるため、コンテンツの幅と高さが異なる場合があります。したがって、SizeToContent 値を「WidthAndHeight」に設定して、ウィンドウにバインドされているコンテンツに基づいてウィンドウのサイズを変更できるようにします。

ただし、ウィンドウの読み込みには時間がかかるため、ユーザーには最初に小さな正方形のウィンドウが表示され、すべてがレンダリングされた後にフルサイズのウィンドウが表示されます。完全に読み込まれる前に、ユーザーに小さなウィンドウが表示されないようにしたいと思います。

ウィンドウが完全にレンダリングされた後にのみ表示されるようにする方法はありますか?

私が試したこと:

  • ウィンドウの可視性を「非表示」に設定してから、ContentRendered イベント ハンドラで「可視」に設定します。ウィンドウは表示されません。

  • ウィンドウの不透明度を 0 に設定してから、ContentRendered イベント ハンドラーで 1 に設定します。ウィンドウ自体のコンテンツの不透明度は 0 に設定され、次に 1 に設定されます。

更新:別の試み

また、XAML で Window.WindowState を「Minimized」に設定してから、ContentRendered イベント ハンドラで「Normal」に設定しようとしました。ウィンドウ自体の幅は本来よりも大きいですが、これは部分的に機能しているようです。さらに悪いことに、ウィンドウのコンテンツがウィンドウの正しいサイズに従ってレンダリングされ、コンテンツを再レンダリングせずにウィンドウが大きくなったように見えます。したがって、コンテンツはウィンドウの中央に配置されず、ウィンドウの正しいサイズと現在の (大きい) サイズの違いを表す厄介な黒い四角形がコンテンツの右側に表示されます。ウィンドウの端をつかんで手動でウィンドウのサイズを変更すると、コンテンツが適切に再レンダリングされ、すべてが正常に表示されます。しかし、コードでそのような再レンダリングを強制するにはどうすればよいでしょうか? Window.UpdateLayout() は機能しません。

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

wpf - 方向と sizeToContent の変更後に WPF でウィンドウ サイズを変更する

ウィンドウの SizeToContent プロパティも変更されているスタックパネルで、水平方向から垂直方向に移動し、水平方向に戻ると問題が発生します。これが私の問題です。垂直から水平に、またはその逆に行ったり来たりするたびに、作成しているメニューの方法を考慮して、サイズをコンテンツに変更します。ただし、以前のようにウィンドウのサイズを適切なサイズに戻すことはできません。例: State A: this.SizeToContent = Manual this.topLevelStackPanel.Orientation = Horizo​​ntal

状態 B this.SizeToContent = WidthAndHeight this.topLevelStackPanel.Orientation = Vertical

状態 A が有効な場合、ウィンドウの復元境界は次の値になります: 22,29,960,22 A から B に移動すると、復元境界は -1932、-532、3212、1092 に変更されます。 B から A へ、復元境界が 22,29,960,22 に戻らない

むしろ、画面を覆う巨大なウィンドウが表示されます。サイズをリセットして前の状態に戻す方法を教えてください。私はしばらくこれにこだわっています。

ここに私のXAMLがあります




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

.net - ウィンドウを開く 独自の Minheight と MinWidth

SizeToContent プロパティを設定せず、WPF でウィンドウの高さと幅を指定せずに、独自の MinHeight と MinWidth を持つウィンドウを開きたいです。WPFで同じことを達成する方法を教えてください。ありがとう