【发布时间】:2013-10-02 20:16:18
【问题描述】:
我有 FlipView(它使用 Mode="Standard" 虚拟化)和 ScrollViewer、Image(在 ScrollViewer 中作为 DataTemplate)。我用这样的代码在 Image 上设置了ImageOpened 事件处理程序:
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方法有什么限制吗?
编辑:
忘了提 - ScrollViewer 上还有 DoubleTapped 事件处理程序,它也调用 ChangeView
【问题讨论】:
标签: windows-runtime