我一直在为我的应用程序的多个版本使用相同的代码,没有问题,但是现在我神秘地收到带有以下内容的NullRerefenceException:

this.Loaded += delegate {
    deleteBrush = new DeleteBrushAdorner( background );
    AdornerLayer al = AdornerLayer.GetAdornerLayer( background );
    al.Add( deleteBrush ); // null ref here??
};
background只是Border元素。

我对可能导致该问题的两种想法是:a)切换到.NET 4.0,以及b)将上述元素的实例(即UserControl)放置在ItemsControl中。

奇怪的是,这种情况并非一直发生,并且很难预测何时发生,因此并不可靠。

最佳答案

AdornerLayer.GetAdornerLayer的文档指定:



因此,我的猜测是没有装饰层……您是否有理由相信情况并非如此?您目前依靠什么保证在可视树中有装饰层?

09-25 20:55