我有Mode="Standard"
带有 ScrollViewer、Image(在 ScrollViewer 中作为 DataTemplate)的 FlipView(它是用 虚拟化的)。我ImageOpened
用这样的代码在 Image 上设置了事件处理程序:
private void Image_ImageOpened(object sender, RoutedEventArgs e)
{
var image = sender as Image;
double width = image.ActualWidth;
double height = image.ActualHeight;
var sv = image.Parent as ScrollViewer;
if (sv != null && width != 0 && height != 0)
{
var properZoom = ZoomUtilities.CalculateZoomFactor(width, height);
sv.MinZoomFactor = 0.3f;
sv.ChangeView(null, null, properZoom);
sv.MinZoomFactor = properZoom;
}
}
properZoom
始终是正确的值。当我更改项目(滑动)或加载页面时,千分之一的使用此 FlipView 应用程序崩溃并打开断点sv.ChangeView(..)
并AccessViolationException
引发异常。有谁知道这种行为可能是什么原因?ChangeView
当我可以调用方法时有什么限制吗?
编辑:忘了提 - DoubleTapped
ScrollViewer 上还有事件处理程序,它也调用ChangeView