在Release生成时未引发OnSizeChanged

本文关键字:OnSizeChanged Release | 更新日期: 2023-09-27 18:24:52

我已经为Windows Phone 8.1/Windows 8.1创建了带有图像裁剪控件的Portable类库,并且我在Release构建中的控件行为有问题。

当我第一次导航到包含已创建控件的页面时,未引发SizeChanged事件(因此我无法正确观察ActualWidth/ActualHeight)。当方向更改时,在调试模式下,甚至当我导航到其他页面并导航回此页面时(某种页面导航控件缓存?),都会引发此问题。我在发布版本中关闭了代码优化,但这没有帮助,所以我想这不是编译器优化的问题。原因可能是什么?

在Release生成时未引发OnSizeChanged

我想我找到了如何解决这个问题(但不知道为什么会发生)。当我编写自定义控件时,我可以覆盖Size MeasureOverride(Size availableSize),它出人意料地给出了正确的大小。我仍然不知道为什么会发生这种情况,从技术上讲,应该提高SizeChanged——根据msdn的"布局处理例程"是:measure->arrange->raise size changed if needed->update layout