画布不会跟随全屏窗口?

时间:2012-12-10 21:22:28

标签: c# wpf grid window size

我得到的图层如下:

<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>

当我通过拉动窗户的侧面/角落来调整窗口大小时,这很好用。 !但!当我点击右上角的“全屏”按钮时,它只显示最后一个图像网格的网格大小。像这样:

Grid is in the middle of the Window

它就像在“全屏幕”之后没有重新绘制网格。 帮帮我?

1 个答案:

答案 0 :(得分:0)

您是否明确设置了网格的WidthHeight? 将网格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>
相关问题