public async Task SetContent(string Content, ReaderStartMode mode = ReaderStartMode.First, int startLength = 0)
        {
            _isSizeChangeLoaded = false;
            _content            = Content;
            LoadingStatusChanged?.Invoke(this, LoadingStatus.Loading);
            await CreateContent();

            _startTextIndex       = startLength;
            IsCoreSelectedChanged = true;
            var index = 0;

            switch (mode)
            {
            case ReaderStartMode.First:
                index = 0;
                break;

            case ReaderStartMode.Last:
                index = Count - 1;
                break;

            case ReaderStartMode.Stay:
                index = Index > Count - 1 ? Count - 1 : Index;
                break;
            }
            if (startLength != 0)
            {
                index = AddonOffset(startLength);
            }
            Index = index;
            GoToIndex(Index, false);
            IsCoreSelectedChanged = false;
            LoadingStatusChanged?.Invoke(this, LoadingStatus.Completed);
        }
Esempio n. 2
0
        public async void SetContent(string Content, ReaderStartMode mode = ReaderStartMode.First, int startLength = 0)
        {
            _isSizeChangeLoaded = false;
            _content            = Content;
            LoadingStatusChanged?.Invoke(this, LoadingStatus.Loading);
            await CreateContent();

            _startTextIndex       = startLength;
            IsCoreSelectedChanged = true;
            var index = 0;

            switch (mode)
            {
            case ReaderStartMode.First:
                index = 0;
                break;

            case ReaderStartMode.Last:
                index = Count - 1;
                break;

            case ReaderStartMode.Stay:
                index = Index > Count - 1 ? Count - 1 : Index;
                break;
            }
            if (startLength != 0)
            {
                int childrenCount = _tempOverflowList.Count;
                var signNumber    = Content.Length / childrenCount;
                index = Convert.ToInt32(Math.Floor(startLength / (signNumber * 1.0)));
                index = Convert.ToInt32(Math.Round(index / (_columns * 1.0)));
                index = index > Count - 1 ? Count - 1 : index;
            }
            Index = index;
            GoToIndex(Index, false);
            IsCoreSelectedChanged = false;
            LoadingStatusChanged?.Invoke(this, LoadingStatus.Completed);
        }
 public CustomRequestEventArgs(ReaderStartMode mode, Chapter chapter, int addon = 0)
 {
     StartMode      = mode;
     RequestChapter = chapter;
     AddonLength    = addon;
 }
Esempio n. 4
0
 /// <summary>
 /// 设置自定义内容
 /// </summary>
 /// <param name="content">文本内容</param>
 /// <param name="mode">起始位置</param>
 public void SetCustomContent(string content, ReaderStartMode mode)
 {
     _txtView.SetContent(content, mode);
 }
 /// <summary>
 /// 设置自定义章节详情
 /// </summary>
 /// <param name="detail">章节详情</param>
 /// <param name="mode">起始位置</param>
 /// <param name="addonLength">偏移值</param>
 public void SetCustomContent(ChapterDetail detail, ReaderStartMode mode, int addonLength = 0)
 {
     _readerView.SetContent(detail.GetReadContent(), mode, addonLength);
 }
 /// <summary>
 /// 设置自定义内容
 /// </summary>
 /// <param name="content">文本内容</param>
 /// <param name="mode">起始位置</param>
 public async void SetCustomContent(string content, ReaderStartMode mode)
 {
     await _readerView.SetContent(content, mode);
 }