“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>());