/// <summary> 显示蒙版 </summary> public static void ShowWithLayer(Uri uri, int layerIndex = 0) { Application.Current.Dispatcher.Invoke(() => { IWindowBase window = Application.Current.MainWindow as IWindowBase; window?.ShowWithLayer(uri); }); }
/// <summary> 关闭蒙版 </summary> public static void CloseWithLayer(int layerIndex = 0) { Application.Current.Dispatcher.Invoke(() => { IWindowBase window = Application.Current.MainWindow as IWindowBase; window?.CloseWithLayer(); }); }
/// <summary> 输出消息和操作按钮 </summary> public static void ShowSnackMessage(string message, object actionContent, Action actionHandler) { Application.Current.Dispatcher.Invoke(() => { IWindowBase window = Application.Current.MainWindow as IWindowBase; if (window != null) { window.AddSnackMessage(message, actionContent, actionHandler); } }); }
public static void ShowSnackMessageWithNotice(string message) { Application.Current.Dispatcher.Invoke(() => { IWindowBase window = Application.Current.MainWindow as IWindowBase; if (window != null) { window.AddSnackMessage($"友情提示:[" + DateTime.Now.ToString("HH:mm:ss] " + message)); } }); }
/// <summary> 显示气泡消息 </summary> public static void ShowNotifyMessage(string message, string title = null, NotifyBalloonIcon tipIcon = NotifyBalloonIcon.Info, int timeout = 1000) { Application.Current.Dispatcher.Invoke(() => { IWindowBase window = Application.Current.MainWindow as IWindowBase; if (window != null) { window.ShowNotifyMessage(title, message, tipIcon, timeout); } }); }
public static void ShowSnackMessage(string message) { Application.Current.Dispatcher.Invoke(() => { IWindowBase window = Application.Current.MainWindow as IWindowBase; if (window != null) { window.AddSnackMessage(message); } }); }
/// <summary> 输出消息、按钮和参数 </summary> public static void ShowWindowNotifyMessage(MessageBase message) { Application.Current.Dispatcher.Invoke(() => { IWindowBase window = Application.Current.MainWindow as IWindowBase; if (window != null) { window.ShowWindowNotifyMessage(message); } }); }
private IWindowBase CreateWindow(UGUI_TYPE uiType) { UIData uicfg = GetUIDataByUIType(uiType); if (uicfg == null) { Debug.LogErrorFormat("ui type {0} cfg is empty", uiType.ToString()); return(null); } GameObject windowObj; Debug.LogError("prefa name " + uicfg.PrefabName); var prefab = Resources.Load <GameObject>(uicfg.PrefabName); //根据项目具体调整 windowObj = GameObject.Instantiate(prefab, transform); if (windowObj == null) { Debug.LogErrorFormat("ui type {0} prefab is null", uiType.ToString()); return(null); } windowObj.transform.position = Vector3.zero; Type scriptType = Type.GetType(uicfg.ScriptName); if (scriptType == null || scriptType.GetInterface("IWindowBase") == null) { Debug.LogErrorFormat("ui type {0} not have IWindowBase attach", uiType.ToString()); return(null); } var scaler = windowObj.GetComponent <CanvasScaler>(); if (scaler != null) { scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; scaler.screenMatchMode = CanvasScaler.ScreenMatchMode.Expand; //屏幕的适应方式 scaler.referenceResolution = new Vector2(1280, 720); } IWindowBase uiwindow = windowObj.AddComponent(scriptType) as IWindowBase; UIControlData ctrlData = windowObj.GetComponent <UIControlData>(); if (ctrlData != null) { ctrlData.BindDataTo(uiwindow); } windowObj.SetActive(false); m_loadedWindow.Add(uiType, uiwindow); return(uiwindow); }
public static void ShowSnackMessageWithNotice(string message) { Application.Current.Dispatcher.Invoke(() => { IWindowBase window = Application.Current.MainWindow as IWindowBase; if (window != null) { string info = $"{LanguageService.Instance.GetConfigByKey("Notice")}:[" + DateTime.Now.ToString("HH:mm:ss] " + message); window.AddSnackMessage(info); } }); }
public void ReleaseWindow(UGUI_TYPE uiType) { IWindowBase uiwindow = GetUI(uiType); if (uiwindow == null) { return; } if (uiwindow.Is3D()) { } else { m_root2D.Release(uiwindow); } m_loadedWindow.Remove(uiType); }
public void Release(IWindowBase window) { if (window == null) { return; } UIBase2D uibase2D = window as UIBase2D; uibase2D.OnRelease(); List <UIBase2D> listwindow = null; m_openMap.TryGetValue(uibase2D.Getlayer(), out listwindow); if (listwindow != null) { listwindow.Remove(uibase2D); } Destroy(uibase2D.gameObject); }
/// <summary> /// 对某个子UI重新排序 /// </summary> /// <param name="window"></param> public void SortChildLayer(IWindowBase window) { UIBase2D uibase2D = window as UIBase2D; if (uibase2D == null) { return; } UGUI_LAYER layer = uibase2D.Getlayer(); List <UIBase2D> listWindows = null; if (!m_openMap.TryGetValue(layer, out listWindows)) { listWindows = new List <UIBase2D>(); m_openMap.Add(layer, listWindows); } listWindows.Remove(uibase2D); listWindows.Add(uibase2D); SortLayer(layer, listWindows); }
public void Close(UGUI_TYPE uiType, bool release = false) { IWindowBase uiwindow = GetUI(uiType); if (uiwindow == null) { return; } uiwindow.Close(); if (release) { if (uiwindow.Is3D()) { } else { m_root2D.Release(uiwindow); } m_loadedWindow.Remove(uiType); } if (!uiwindow.Is3D()) { if (!CheckMenuLayerVisiable()) //如果没有全屏 的系统了,就打开mainUI { SetMainUIActive(true); } } if (m_ParentUI.Count > 0) { ParentUIStruct parentUI = m_ParentUI.Peek(); if (parentUI.ChildUI == uiType) { Open(parentUI.ParentUI); //就是一个固定返回界面,一种父子的关系,尽量少用 m_ParentUI.Pop(); } } }
public void Add(IWindowBase window) { if (window == null) { return; } UIBase2D uibase2D = window as UIBase2D; uibase2D.Initialize(); uibase2D.transform.SetParent(transform, false); UGUI_LAYER layer = uibase2D.Getlayer(); List <UIBase2D> listWindows = null; if (!m_openMap.TryGetValue(layer, out listWindows)) { listWindows = new List <UIBase2D>(); m_openMap.Add(layer, listWindows); } listWindows.Add(uibase2D); SortLayer(layer, listWindows); }
public void Remove(IWindowBase window) { RemoveImpl(IndexOf(window)); }
public TextManagerViewModel(IConfirmer confirmer, IWindowBase window) { _confirmer = confirmer; _window = window; }