Canvas
名前付きのmainCanvasがあり、プログラムで aScrollViewer
と aStackPanel
を順番に追加しています
...mainCanvas
……スクロールビュー
.........pnl
.......... (より積み重ねられたコントロール)
StackPanel を mainCanvas サイズに自動サイズ変更し、大きすぎる場合はスクロールできるようにしようとしています。これまでのコードは以下のとおりです
mainCanvas.Children.Clear();
// Create the container
ScrollViewer scrollView = new ScrollViewer();
scrollView.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
scrollView.CanContentScroll = true;
scrollView.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
scrollView.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
StackPanel pnl = new StackPanel();
//pnl.Height = 500; //Works and allows scrolling but doesn't resize
pnl.Height = Double.NaN; //(Double.NaN is Auto) Doesn't Work - StackPanel overflows parent window
pnl.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
pnl.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
scrollView.Content = pnl;
// Add the ScrollView and StackPanel to Parent Window
mainCanvas.Children.Add(scrollView);
残念ながら、StackPanel は親に適合せず、自動サイズ調整されません。
mainCanvas
設定で XAML に既に存在します:
幅=「自動」
高さ=「自動」
HorizontalAlignment = "ストレッチ"
VerticalAlignment = "ストレッチ"
pnl.Height = 500;
Stackpanel の高さが制限されている場合にスクロールバーが機能することを示すものを使用して、物事を半機能させることができます。ただし、これは高さを全画面サイズに合わせて手動で調整しているだけなので、アプリのサイズを変更するときに自動サイズ変更されません。
自動に設定pnl.Height = Double.NaN;
し、ストレッチへの V/H 調整が機能することを望みましたが、StackPanel はすべてのコントロールを最大サイズまでオーバーラップさせます。
親および/またはメインアプリウィンドウのサイズをスクロールして変更するときに、StackPanelを親mainCanvasに合わせて自動サイズ調整するために、誰かが私を正しい方向に向けることができますか?
ありがとうございました