我一直在为我的应用程序的多个版本使用相同的代码,没有问题,但是现在我神秘地收到带有以下内容的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的文档指定:
因此,我的猜测是没有装饰层……您是否有理由相信情况并非如此?您目前依靠什么保证在可视树中有装饰层?