如何将 Stackpanel 内的 ScrollViewer 的大小调整为 Window 的大小?
How to adapt the size of a ScrollViewer inside a Stackpanel to the size of the Window?
我创建了一个固定大小 canvas 的 A4 纸大小 (21cm x 29.7cm)。
我希望它在 ScrollViewer 和 StackPanel 中滚动。
但是,ScrollViewer 似乎没有调整其大小以适应 window 的大小。我怎样才能做到这一点?
到目前为止,这是我的代码。为了便于阅读,删除了大括号 { } 之间的文本。
<Window {xmlns stuff here} Width="900" Height="1200" >
<StackPanel>
<my:Ribbon ShowQuickAccessToolBarOnTop="False">
{ ... Ribbon definition ... }
</my:Ribbon>
<ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Visible" >
<Canvas x:Name="PageCanvas" HorizontalAlignment="Left"
VerticalAlignment="Top" Width="21cm" Height="29.7cm" >
{ ... Various drawings and elements here ... }
</Canvas>
</ScrollViewer>
</StackPanel >
</Window>
StackPanel 被设计为在一个方向上无限增长。因此,如果不固定 StackPanel 的高度或不将 StackPanel 替换为另一个面板(例如 Grid),您将无法完成任务。
我建议你使用网格:
<Window {xmlns stuff here} Width="900" Height="1200" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto">
<RowDefinition Height="*">
</Grid.RowDefinitions>
<my:Ribbon ShowQuickAccessToolBarOnTop="False" Grid.Row="0">
{ ... Ribbon definition ... }
</my:Ribbon>
<ScrollViewer HorizontalScrollBarVisibility="Auto" Grid.Row="1"
VerticalScrollBarVisibility="Visible" >
<Canvas x:Name="PageCanvas" HorizontalAlignment="Left"
VerticalAlignment="Top" Width="21cm" Height="29.7cm" >
{ ... Various drawings and elements here ... }
</Canvas>
</ScrollViewer>
</StackPanel >
</Window>
我创建了一个固定大小 canvas 的 A4 纸大小 (21cm x 29.7cm)。
我希望它在 ScrollViewer 和 StackPanel 中滚动。 但是,ScrollViewer 似乎没有调整其大小以适应 window 的大小。我怎样才能做到这一点?
到目前为止,这是我的代码。为了便于阅读,删除了大括号 { } 之间的文本。
<Window {xmlns stuff here} Width="900" Height="1200" >
<StackPanel>
<my:Ribbon ShowQuickAccessToolBarOnTop="False">
{ ... Ribbon definition ... }
</my:Ribbon>
<ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Visible" >
<Canvas x:Name="PageCanvas" HorizontalAlignment="Left"
VerticalAlignment="Top" Width="21cm" Height="29.7cm" >
{ ... Various drawings and elements here ... }
</Canvas>
</ScrollViewer>
</StackPanel >
</Window>
StackPanel 被设计为在一个方向上无限增长。因此,如果不固定 StackPanel 的高度或不将 StackPanel 替换为另一个面板(例如 Grid),您将无法完成任务。
我建议你使用网格:
<Window {xmlns stuff here} Width="900" Height="1200" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto">
<RowDefinition Height="*">
</Grid.RowDefinitions>
<my:Ribbon ShowQuickAccessToolBarOnTop="False" Grid.Row="0">
{ ... Ribbon definition ... }
</my:Ribbon>
<ScrollViewer HorizontalScrollBarVisibility="Auto" Grid.Row="1"
VerticalScrollBarVisibility="Visible" >
<Canvas x:Name="PageCanvas" HorizontalAlignment="Left"
VerticalAlignment="Top" Width="21cm" Height="29.7cm" >
{ ... Various drawings and elements here ... }
</Canvas>
</ScrollViewer>
</StackPanel >
</Window>