0

次のようにレイヤーを取得しました。

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

これは、ウィンドウの側面/角を引っ張ってウィンドウのサイズを変更しているときにうまく機能します..!しかし! 右上隅にある「フルスクリーン」ボタンを押すと、最後に描かれたグリッドのグリッドサイズのみが表示されます。このような:

グリッドはウィンドウの中央にあります

「フルスクリーン」後にグリッドを再描画しないようです..助けてください。

4

1 に答える 1

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>
于 2012-12-10T22:40:08.870 に答える