「ScreenBase」修訂間的差異

出自 骑砍中文百科
前往: 導覽搜尋
(创建页面,内容为“[https://docs.bannerlordmodding.com/_gauntlet/screenbase.html <big>访问源文档</big>]<br> <big>返回目录</big><br> <br>…”)
 
(已保护“ScreenBase”([编辑=仅允许管理员](无限期)[移动=仅允许管理员](无限期)))
 
(無差異)

於 2020年4月24日 (五) 23:02 的最新修訂

訪問源文檔
返回目錄

你可以通過Screen組織和實例化你的 ViewModelsMovies 為了避免一些問題,請在創建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>());