void _gridClickManager_DoubleClick(object sender, MouseButtonEventArgs e) { DataGridRow dgrow = sender as DataGridRow; PageResourceContentLoader load = new PageResourceContentLoader(); load.BeginLoad(new Uri(page + ".xaml", UriKind.Relative), null, new AsyncCallback(r => { LoadResult ui = load.EndLoad(r); CustomChildWindow showWin = (CustomChildWindow)ui.LoadedContent; showWin.ParamValue = dgrow.DataContext; showWin.Show(); }), 1); }
private static void OnSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ContentControl c = (ContentControl)d; if (e.NewValue == null) { return; } PageResourceContentLoader load = new PageResourceContentLoader(); load.BeginLoad(new Uri(e.NewValue + ".xaml", UriKind.Relative), null, new AsyncCallback(r => { LoadResult ui = load.EndLoad(r); c.Content = ui.LoadedContent; }), 1); }
private static void OnSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (e.NewValue == null) { return; } MyFrame c = (MyFrame)d; PageResourceContentLoader load = new PageResourceContentLoader(); load.BeginLoad(new Uri(e.NewValue.ToString(), UriKind.Relative), null, new AsyncCallback(r => { LoadResult ui = load.EndLoad(r); c.Children.Clear(); c.Children.Add((UIElement)ui.LoadedContent); }), 1); }
private static void OnPageNameChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { Panel c = (Panel)d; //获取页面缓存 List <NameAndFrame> pages = GetPanelPages(c); //旧页面变为不可见 if (e.OldValue != null) { NameAndFrame oldNaf = GetChildren((string)e.OldValue, pages); if (oldNaf != null) { oldNaf.frame.Visibility = Visibility.Collapsed; } } if (e.NewValue == null) { return; } string newName = (string)e.NewValue; //如果不包含页面,说明页面没有打开,打开页面 NameAndFrame newui = GetChildren(newName, pages); if (newui == null) { PageResourceContentLoader load = new PageResourceContentLoader(); load.BeginLoad(new Uri(e.NewValue + ".xaml", UriKind.Relative), null, new AsyncCallback(r => { LoadResult ui = load.EndLoad(r); FrameworkElement page = (FrameworkElement)ui.LoadedContent; c.Children.Add(page); //添加到页面缓存中 NameAndFrame newpage = new NameAndFrame(newName, page); pages.Add(newpage); }), 1); } else { //修改页面为可见 newui.frame.Visibility = Visibility.Visible; //将新的放到栈顶 pages.Remove(newui); pages.Add(newui); } }
public static void OnIsOpenChanged(DependencyObject dp, DependencyPropertyChangedEventArgs args) { object newVal = args.NewValue; //IsOpen为True,并且有子窗口名称,创建子窗口并显示 if (newVal != null && (bool)newVal) { ChildWindowObj cwo = (ChildWindowObj)dp; if (cwo.CWName == null) { throw new Exception("子窗口名称为空"); } PageResourceContentLoader load = new PageResourceContentLoader(); load.BeginLoad(new Uri(cwo.CWName + ".xaml", UriKind.Relative), null, new AsyncCallback(r => { LoadResult ui = load.EndLoad(r); CustomChildWindow showWin = (CustomChildWindow)ui.LoadedContent; if (cwo.ParamObj != null) { showWin.ParamValue = cwo.ParamObj; } showWin.Show(); showWin.Parent = dp; //注册关闭事件获取返回值 showWin.Closed += (o, e) => { CustomChildWindow cw = (CustomChildWindow)o; if (cw.ReturnValue != null) { cw.ReturnValue.ToString(); cwo.Result = cw.ReturnValue; cwo.OnCompleted(); } cwo.OnCompleted(new AsyncCompletedEventArgs(null, false, null)); }; }), 1); cwo.IsOpen = false; } }