我在缩放图像后更新 ScrollViewer 时遇到一个大问题。我尝试调用方法 UpdateLayout,但一切都完好无损。图像缩放没有问题,但滚动条保持不变。
几个小时后,我在堆栈溢出和谷歌上寻找不同的解决方案,但没有,我失败了。 XAML:
<ScrollViewer x:Name="imagescrl" Grid.Row="1" VerticalScrollBarVisibility="Auto" CanContentScroll="True" HorizontalScrollBarVisibility="Auto" >
<Image x:Name="imgp" VerticalAlignment="Center" HorizontalAlignment="Center">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0.01" ScaleY="0.01"/>
<ScaleTransform x:Name="imgpScale">
<ScaleTransform.ScaleX>
<Binding ElementName="sldZoom" Path="Value" Mode="OneWay"/>
</ScaleTransform.ScaleX>
<ScaleTransform.ScaleY>
<Binding ElementName="sldZoom" Path="Value" Mode="OneWay"/>
</ScaleTransform.ScaleY>
</ScaleTransform>
</TransformGroup>
</Image.RenderTransform>
</Image>
</ScrollViewer>
...
...
<Slider ValueChanged="Slider_ValueChanged" x:Name="sldZoom" BorderThickness="11,20,0,5" Maximum="250" Minimum="1" Value="100" Width="153"/>
谢谢
c#:
private void Slider_ValueChanged(object sender,RoutedPropertyChangedEventArgs<double> e)
{
imagescrl.UpdateLayout();
}
最佳答案
你需要使用
<Image.LayoutTransform>
代替
<Image.RenderTransform>
而且后端代码中不需要事件
关于c# - 图像缩放后我如何更新滚动查看器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21027816/