我已經嘗試了很多方法來管理ScrollViewer(Windows Phone 7 Silverlight)中的RenderTransform,但在我看來,現在幾乎是不可能的。我得到的是與ScrollViewer中的大小相匹配的網格,我想通過RenderTransform從代碼更改網格的內容大小,它什麼也不做!我該如何在ScrollViewer(WP7)中執行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();
}
結合規模和可視狀態做理智最多了。我真的很感謝你的幫助。
你有沒有打算命名你的CompositeTransform * scaleTransform *。爲什麼不直接引用scaleTransform.ScaleX等而不是所有的混亂投射?您可以命名Xaml中的任何元素,並以強類型的方式直接引用它。 –