私はこのような構造のアプリを持っています(ここでFrame
、コンテンツはPage
egに設定されていMyPage
ます:
MainWindow.xaml
<Window ... Height="450" Width="800">
<Grid>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Frame NavigationUIVisibility="Hidden" Source="Page1.xaml"/>
</ScrollViewer>
</Grid>
</Window>
MyPage.xaml
<Page ...>
<Grid Background="GhostWhite">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Background="Pink">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0">Title</TextBlock>
<ScrollViewer Grid.Row="1" Background="Yellow" VerticalScrollBarVisibility="Auto">
<StackPanel>
<Rectangle Margin="10" Fill="Red" Width="250" Height="100"/>
<Rectangle Margin="10" Fill="Red" Width="250" Height="100"/>
<Rectangle Margin="10" Fill="Red" Width="250" Height="100"/>
<Rectangle Margin="10" Fill="Red" Width="250" Height="100"/>
</StackPanel>
</ScrollViewer>
</Grid>
</Grid>
</Page>
Visual Studio では、ページは次のようにレンダリングされ、左側のパネル内にスクロールバーが表示されます。
ただし、コンパイル時に実際に発生するのは、ページがScrollView
コンテンツのすべてのスペースを占めるように拡大さScrollView
れ、メイン ウィンドウからスクロールバーが表示されることです。このような:
ScrollView
内部が親グリッドを超えて成長しないようにするにはどうすればよいですか?
私はそれに固定の高ScrollView
さを与えることができることを知っていますが、それは私が望むものではありません.親のGrid
ScrollView
Grid
Height
ActualHeight
RowDefinition
Grid