public async Task <IActionResult> Create([FromBody] CreateSystemScreenViewModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } SystemScreen systemScreen = new SystemScreen { Description = model.Description, Enabled = model.Enabled, Entity = model.Entity, Icon = model.Icon, IsDefault = model.IsDefault, Orden = model.Orden, ParentId = model.ParentId, Path = model.Path }; _context.SystemScreen.Add(systemScreen); try { await _context.SaveChangesAsync(); } catch { return(BadRequest()); } return(Ok(systemScreen.Id)); }
public static void AddScreen(SystemScreen screen) { switch (screen) { case SystemScreen.PauseScreen: ScreenManager.activeScreens.Add(ScreenManager.systemScreens[SystemScreen.PauseScreen]); ScreenManager.currentScreen = ScreenManager.systemScreens[SystemScreen.PauseScreen]; ScreenManager.popupCount++; ScreenManager.modalCount++; break; } }
public static void PopBackTo(SystemScreen screen) { switch (screen) { case SystemScreen.MenuScreen: for (int i = ScreenManager.activeScreens.Count - 1; i >= 0; i--) { ScreenManager.activeScreens[i].UnloadContent(); ScreenManager.activeScreens.RemoveAt(i); } ScreenManager.CurrentScreen = ScreenManager.systemScreens[SystemScreen.MenuScreen]; break; } }
private static GameScreen AddSystemScreen(SystemScreen screenType) { GameScreen systemScreen = null; GameScreen tempScreen = null; try { switch (screenType) { case SystemScreen.MenuScreen: tempScreen = new MenuScreen(); break; case SystemScreen.PauseScreen: tempScreen = new PauseScreen(); break; case SystemScreen.OptionsScreen: tempScreen = new OptionsScreen(); break; case SystemScreen.ExtrasScreen: tempScreen = new ExtrasScreen(); break; } tempScreen.InitializeScreen(ScreenManager.GraphicsDevice); tempScreen.LoadScreenContent(); systemScreen = tempScreen; tempScreen = null; } catch (NullReferenceException) { } finally { if (tempScreen != null) { tempScreen.Dispose(); } } return(systemScreen); }
/// <summary> /// 将视觉元素的呈现内容以图片的形式保存 /// </summary> /// <param name="element"></param> /// <param name="stream"></param> /// <param name="width"></param> /// <param name="height"></param> public static void SaveImage(this FrameworkElement element, Stream stream, bool undoTransformation = true) { var dpi = SystemScreen.DPI; //得到像素大小 int width = SystemScreen.GetPhysicalWidth((int)element.Width); int height = SystemScreen.GetPhysicalHeight((int)element.Height); RenderTargetBitmap rtb = new RenderTargetBitmap(width, height, dpi.X, dpi.Y, PixelFormats.Pbgra32); if (undoTransformation) { //以下代码是消除组件被转换过的(比如旋转,比例缩放,或是平移之类)影响 DrawingVisual dv = new DrawingVisual(); using (DrawingContext dc = dv.RenderOpen()) { VisualBrush vb = new VisualBrush(element); dc.DrawRectangle(vb, null, new Rect(new System.Windows.Point(), new System.Windows.Size(element.Width, element.Height))); } rtb.Render(dv); } else { rtb.Render(element); } using (MemoryStream ms = new MemoryStream()) { BmpBitmapEncoder encoder = new BmpBitmapEncoder(); var frame = BitmapFrame.Create(rtb); encoder.Frames.Add(frame); encoder.Save(ms); Compress(ms, stream, width, height); } GC.Collect(); //一定要调用该方法,否则内存泄露,encoder.Save(stream); 方法引起的内存损耗 }
public static void AddScreen(SystemScreen screen) { switch (screen) { case SystemScreen.PauseScreen: ScreenManager.activeScreens.Add(ScreenManager.systemScreens[SystemScreen.PauseScreen]); ScreenManager.currentScreen = ScreenManager.systemScreens[SystemScreen.PauseScreen]; ScreenManager.popupCount++; ScreenManager.modalCount++; break; case SystemScreen.OptionsScreen: ScreenManager.activeScreens.Add(ScreenManager.systemScreens[SystemScreen.OptionsScreen]); ScreenManager.currentScreen = ScreenManager.systemScreens[SystemScreen.OptionsScreen]; ScreenManager.modalCount++; break; case SystemScreen.ExtrasScreen: ScreenManager.activeScreens.Add(ScreenManager.systemScreens[SystemScreen.ExtrasScreen]); ScreenManager.currentScreen = ScreenManager.systemScreens[SystemScreen.ExtrasScreen]; ScreenManager.modalCount++; break; } }
private static GameScreen AddSystemScreen(SystemScreen screenType) { GameScreen systemScreen = null; GameScreen tempScreen = null; try { switch (screenType) { case SystemScreen.MenuScreen: tempScreen = new MenuScreen(); break; case SystemScreen.PauseScreen: tempScreen = new PauseScreen(); break; } tempScreen.Initialize(ScreenManager.GraphicsDevice); tempScreen.LoadContent(); systemScreen = tempScreen; tempScreen = null; } finally { if (tempScreen != null) { tempScreen.Dispose(); } } return systemScreen; }
public static void PopBackTo(SystemScreen screen) { switch (screen) { case SystemScreen.MenuScreen: ScreenManager.UnloadContent(); ScreenManager.CurrentScreen = ScreenManager.systemScreens[SystemScreen.MenuScreen]; break; } }
// width = 389 public PlanetScreenAlign(SystemScreen parentScreen, int planetId, int width = 550, int height = 293, int leftMargin = 2, int topMargin = 0, int rightMargin = 0, int bottomMargin = 0) : base(width, height, leftMargin, topMargin, rightMargin, bottomMargin) { this.parentScreen = parentScreen; }
public async Task <IActionResult> Update([FromBody] List <UpdateSystemScreenViewModel> listmodel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } List <SystemScreen> screensUpdate = new List <SystemScreen>(); List <SystemScreen> screensAdd = new List <SystemScreen>(); List <SystemScreen> screensRemove = new List <SystemScreen>(); //Actualiza masivamente foreach (var item in listmodel) { if (item.Id == null && item.IsNew == true) { SystemScreen systemScreen = new SystemScreen { Description = item.Description, Enabled = item.Enabled, Entity = item.Entity, Icon = item.Icon, IsDefault = item.IsDefault, Orden = item.Orden ?? 99, ParentId = item.ParentId, Path = item.Path }; screensAdd.Add(systemScreen); } else { //Si no es a borrar, el modelo //SystemScreen systemScreen = _context.SystemScreen.Find(item.Id); //Ahora me fijo si lo elimino o lo actualizo if (item.IsRemoved) { SystemScreen systemScreen = _context.SystemScreen.Where(x => x.Id == item.Id).Include(x => x.SystemScreenFields).Include(x => x.SystemActions).FirstOrDefault(); screensRemove.Add(systemScreen); } else { SystemScreen systemScreen = _context.SystemScreen.Find(item.Id);//Es mas rapido systemScreen.Description = item.Description; systemScreen.Enabled = item.Enabled; systemScreen.Entity = item.Entity; systemScreen.Icon = item.Icon; systemScreen.IsDefault = item.IsDefault; systemScreen.Orden = item.Orden ?? 99; systemScreen.ParentId = item.ParentId; systemScreen.Path = item.Path; screensUpdate.Add(systemScreen); } } } //Agrego _context.SystemScreen.AddRange(screensAdd); //Actualizo _context.SystemScreen.UpdateRange(screensUpdate); //Borro //Primero borro las dependencias foreach (var item in screensRemove) { if (item.SystemScreenFields != null) { _context.SystemScreenField.RemoveRange(item.SystemScreenFields); } if (item.SystemActions != null) { _context.SystemAction.RemoveRange(item.SystemActions); } } _context.SystemScreen.RemoveRange(screensRemove); try { await _context.SaveChangesAsync(); } catch { return(BadRequest()); } return(Ok()); }