「ScreenBase」修訂間的差異
(创建页面,内容为“[https://docs.bannerlordmodding.com/_gauntlet/screenbase.html <big>访问源文档</big>]<br> <big>返回目录</big><br> <br>…”) |
小 (已保护“ScreenBase”([编辑=仅允许管理员](无限期)[移动=仅允许管理员](无限期))) |
(無差異)
|
於 2020年4月24日 (五) 23:02 的最新修訂
訪問源文檔
返回目錄
你可以通過Screen組織和實例化你的 ViewModels 和 Movies。
為了避免一些問題,請在創建Screen時使用以下模板:
public class MyExampleScreen : ScreenBase { private MyExampleVM _dataSource; private GauntletLayer _gauntletLayer; private GauntletMovie _movie; protected override void OnInitialize() { base.OnInitialize(); _dataSource = new MyExampleVM(); _gauntletLayer = new GauntletLayer(100) { IsFocusLayer = true }; AddLayer(_gauntletLayer); _gauntletLayer.InputRestrictions.SetInputRestrictions(); _movie = _gauntletLayer.LoadMovie("MyExampleMovie", _dataSource); } protected override void OnActivate() { base.OnActivate(); ScreenManager.TrySetFocus(_gauntletLayer); } protected override void OnDeactivate() { base.OnDeactivate(); _gauntletLayer.IsFocusLayer = false; ScreenManager.TryLoseFocus(_gauntletLayer); } protected override void OnFinalize() { base.OnFinalize(); RemoveLayer(_gauntletLayer); _dataSource = null; _gauntletLayer = null; } }
壓入你的 Screen
如果要將你的 Screen 壓入 Screen 棧,你可以使用如下代碼:
ScreenManager.PushScreen(ViewCreatorManager.CreateScreenView<MyExampleScreen>());