スクロールビューア内に配置されている場合、キャンバスとグリッドの両方が 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;
}
}
}
誰かが私を啓発してもらえますか?