1

スクロールビューア内に配置されている場合、キャンバスとグリッドの両方が RenderTransform を使用してサイズ変更できないのはなぜですか? スクロールビューアから取り出した場合、グリッドまたはキャンバスは問題なくサイズ変更されますが、明らかにスクロールできなくなります。

XAML コード

<Grid x:Name="ContentPanel">
    <ScrollViewer VerticalScrollBarVisibility="Auto"
                  HorizontalScrollBarVisibility="Auto"
                  Margin="0,0,0,0"
                  x:Name="scrollWindow">
        <Grid HorizontalAlignment="Left"
                x:Name="primaryGrid"
                VerticalAlignment="Top">
        </Grid>
    </ScrollViewer>
</Grid>

C# コード

public class MyClass
{
    private TranslateTransform move = new TranslateTransform();
    private ScaleTransform resize = new ScaleTransform();
    private TransformGroup transform= new TransformGroup();

    public MyClass(Grid primaryGrid, ScrollViewer scrollWindow)
    {
        transform.Children.Add(move);
        transform.Children.Add(resize);

        scrollWindow.ManipulationDelta += new EventHandler<ManipulationDeltaEventArgs>(testManipulationDelta);
        scrollWindow.ManipulationMode = ManipulationMode.System;

        primaryGrid.RenderTransform = transform;
    }

    void testManipulationDelta(object sender, ManipulationDeltaEventArgs e)
    {
        if (e.DeltaManipulation.Scale.X > 0 && e.DeltaManipulation.Scale.Y > 0)
        {
            resize.ScaleX *= e.DeltaManipulation.Scale.X;
            resize.ScaleY *= e.DeltaManipulation.Scale.X;
        }
    }
}

誰かが私を啓発してもらえますか?

4

0 に答える 0