如何通过WinRT中的XAML代码创建控件?我创建了ImageSlideShow
UserControl,它使用SempahoreSlim
和DispatcherTimer
(我使用timer.Tick事件)。我应该将.Unloaded事件处理程序添加到ImageSlideShow
用户控件或实现IDisposable(xaml负责调用.Dispose吗?)来释放资源和事件处理程序 - 或者我是否需要手动处理它,就像在代码中创建的控件一样 - 后面?
答案 0 :(得分:4)
您应该使用Unloaded
UserControl
事件。在解开所有事件的同时,取消<Image />
&amp;如果您正在使用任何集合控件,请将ItemsSource
设置为null
。
如何使图像无效?
BitmapImage bitmapImage = image.Source as BitmapImage;
bitmapImage.UriSource = null;
image.Source = null;
此处image
是<Image />
同时实现IDisposable
接口。然后,您需要浏览完整的UI元素树,搜索<Image />
并在所有这些树上调用Dispose
。
有关详细信息,请查看此内容(也适用于W8):How to debug most common memory leaks on WP8