/* * 初始化页面控件 */ private void initControl(Int32 pageId) { DPage dPage = dPageBll.get(pageId); this.dPage = dPage; if (dPage == null) { return; } //1加载背景图片 StorageImage storageImage = null; if (dPage.backgroundImageId > 0) { storageImage = storageImageBll.get(dPage.backgroundImageId); } if (FileUtil.imageIsExists(storageImage?.url)) { Background = Brushes.Transparent; FileUtil.readImage2Page(this, AppDomain.CurrentDomain.BaseDirectory + storageImage.url, Convert.ToInt32(ActualWidth), Stretch.Fill); } else if (showDefaultBackgroundInCFrameDialog) { Background = Brushes.Transparent; FileUtil.readImage2Page(this, AppDomain.CurrentDomain.BaseDirectory + Params.CFrameDialogDefaultBackground, Convert.ToInt32(ActualWidth), Stretch.Fill); } //2加载视频背景 if (dPage.backgroundVideoId > 0) { StorageVideo storageVideo = storageVideoBll.get(dPage.backgroundVideoId); if (storageVideo != null) { int pageWidth = App.localStorage.cfg.screenWidth; int pageHeight = App.localStorage.cfg.screenHeight; if (dPage.width > 0) { pageWidth = dPage.width; pageHeight = dPage.height; } insertCVideoBackground(storageVideo, pageWidth, pageHeight); } } insertToPage = new InsertToPage(mainFrame, container, dPage, this); List <DControl> list = dControlBll.getByPageId(pageId); if (list == null) { return; } foreach (DControl ctl in list) { insertToPage.insertControl(ctl); } }
public void PageTemplate_UnLoaded(object sender, RoutedEventArgs e) { Unloaded -= PageTemplate_UnLoaded; foreach (FrameworkElement element in container.Children) { if (element is Button) { Button btn = element as Button; if (btn.Name == "Image") { btn.Click -= insertToPage.imageButtonClick; } else if (btn.Name == "BackButton") { btn.Click -= insertToPage.backButtonClick; } else if (btn.Name == "HomeButton") { btn.Click -= insertToPage.homeButtonClick; } btn.Background = null; btn = null; } else if (element is DocumentViewer) { DocumentViewer documentViewer = element as DocumentViewer; documentViewer.Document = null; documentViewer = null; } else if (element is TurnPicture) { TurnPicture turnPicture = element as TurnPicture; turnPicture = null; } else if (element is Marque) { Marque marque = element as Marque; marque = null; } else if (element is MarqueLayer) { MarqueLayer marqueLayer = element as MarqueLayer; marqueLayer = null; } else if (element is CVideo) { CVideo cVideo = element as CVideo; cVideo = null; } else if (element is CFrame) { CFrame cFrame = element as CFrame; cFrame.Content = null; cFrame = null; } else if (element is TextBlock) { TextBlock textBlock = element as TextBlock; textBlock.PreviewMouseUp -= insertToPage.textBlock_PreviewMouseUp; textBlock.PreviewTouchUp -= insertToPage.textBlock_PreviewTouchUp; textBlock = null; } else if (element is Gif) { Gif gif = element as Gif; gif.PreviewMouseUp -= insertToPage.gif_PreviewMouseUp; gif.PreviewTouchUp -= insertToPage.gif_PreviewTouchUp; gif = null; } else if (element is CAudio) { CAudio cAudio = element as CAudio; cAudio.PreviewMouseUp += insertToPage.cAudio_PreviewMouseUp; cAudio.PreviewTouchUp += insertToPage.cAudio_PreviewTouchUp; cAudio = null; } else if (element is CCalendar) { CCalendar cCalendar = element as CCalendar; cCalendar = null; } else if (element is Canvas && element.Name == "frameDialogCanvas") { releaseFrameDialogCanvas(element); } else { FrameworkElement fe = element as FrameworkElement; fe = null; } } //释放视频背景 foreach (FrameworkElement ele in backgroundVideo.Children) { if (ele.Name == "CVideoBackground") { CVideoBackground cVideoBackground = (CVideoBackground)ele; cVideoBackground = null; } } backgroundVideo.Children.Clear(); Background = null; insertToPage = null; Content = null; container.Children.Clear(); GC.Collect(); }