gpt4 book ai didi

c# - 如何在 ScrollViewer (WP7) 中执行 RenderTransform?

转载 作者:太空宇宙 更新时间:2023-11-03 14:13:07 24 4
gpt4 key购买 nike

我已经尝试了很多方法来在 ScrollViewer (Windows Phone 7 Silverlight) 中管理 RenderTransform,但现在在我看来这几乎是不可能的。我得到的是 Grid,它的大小在 ScrollViewer 中,我想通过 RenderTransform 的代码更改网格的内容大小,因为它什么都不做!

      <ScrollViewer x:Name="scrollViewer" Width="800" Height="480" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
<Grid x:Name="grid" Width="1600" Height="960" HorizontalAlignment="Left" VerticalAlignment="Top">
<Grid.RenderTransform>
<CompositeTransform x:Name="scaleTransform" ScaleX="1" ScaleY="1"/>
</Grid.RenderTransform>
<Image x:Name="backgroundImage" Source="/Images/backgrounds/Happy rainbow.png" Stretch="Fill"/>
</Grid>
</ScrollViewer>

在代码中:

        private void button_Click(object sender, RoutedEventArgs e)
{
(grid.RenderTransform as CompositeTransform ).CenterX = 0;
(grid.RenderTransform as CompositeTransform ).CenterY = 0;
(grid.RenderTransform as CompositeTransform ).ScaleX = 0.5;
(grid.RenderTransform as CompositeTransform ).ScaleY = 0.5;
grid.UpdateLayout();
}

按比例和视觉状态绑定(bind)也无济于事。非常感谢您的帮助。

最佳答案

更好的主意...将您的网格内容放入 ItemsControl,然后在 ItemsControl 上执行 ScaleTransform。

<Grid>
<ItemsControl x:Name="ContentScaler">
<Image x:Name="backgroundImage" Source="/Images/backgrounds/Happy rainbow.png" Stretch="Fill"/>
</ItemsControl>
</Grid>

在代码隐藏...

ContentScaler.RenderTransform = new ScaleTransform() { ScaleX = 0.5, ScaleY = 0.5, CenterX = 0, CenterY = 0 };

根据您可能需要做的其他事情,您可能需要做一些事情,例如将 WrapPanel 设置为 ItemsPanelTemplate 和/或在缩放时调整 ItemsControl 的大小。它可能会有点棘手,但希望这能为您指明正确的方向。

恕我直言,在 Silverlight 中使用 Grid 也有点被过度使用,除非需要将内容分解为表格类型布局。 Canvas 可能更适合您正在做的事情。

关于c# - 如何在 ScrollViewer (WP7) 中执行 RenderTransform?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7200475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com