我得到的图层如下:
<Window>
<Grid>
<Scrollviewer>
<Canvas>
....
<Canvas/>
<Scrollviewer/>
<Grid/>
<Window/>
现在,如果我希望我的网格扩展并遵循窗口高度和宽度,我使用以下代码:
<Window Title="MainWindow" Name="Window" MinHeight="500" MinWidth="800">
<Grid Height="{Binding ElementName=Window, Path=Height}" Width="{Binding ElementName=Window, Path=Width}" x:Name="theGrid">
<Grid.RowDefinitions>
<RowDefinition Height="436*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Margin="0,50,15,66">
<Canvas MinWidth="{Binding ElementName=theGrid, Path=Width}" MinHeight="{Binding ElementName=theGrid, Path=Height}" Name="canvas1">
<Canvas.LayoutTransform>
<ScaleTransform ScaleX="{Binding Path=Value, ElementName=slider1}"
ScaleY="{Binding Path=Value, ElementName=slider1}"/>
</Canvas.LayoutTransform>
</Canvas>
</ScrollViewer>
当我通过拉动窗户的侧面/角落来调整窗口大小时,这很好用。 !但!当我点击右上角的“全屏”按钮时,它只显示最后一个图像网格的网格大小。像这样:
它就像在“全屏幕”之后没有重新绘制网格。 帮帮我?
答案 0 :(得分:0)
您是否明确设置了网格的Width
和Height
?
将网格Margin
设置为0将始终将网格设置为窗口大小
<Grid Margin="0" x:Name="theGrid">
<Grid.RowDefinitions>
<RowDefinition Height="436*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Margin="0,50,15,66">
<Canvas Margin="0" Name="canvas1">
<Canvas.LayoutTransform>
<ScaleTransform ScaleX="{Binding Path=Value, ElementName=slider1}"
ScaleY="{Binding Path=Value, ElementName=slider1}"/>
</Canvas.LayoutTransform>
</Canvas>
</ScrollViewer>