public virtual void OnShow() { if (ContentViewer != null) { AttachContentViewer?.Invoke(ContentViewer); } }
public void SetContentViewer(Content <Stream> pageContent) { if (pageContent == null) { ContentViewer = null; return; } var viewerProvider = Registry.Pooled <ContentViewerProvider> (); var viewer = viewerProvider.Supports(pageContent.ContentType); if (viewer == null) { var io = Registry.Pooled <StreamContentIoPool> ().Find(pageContent.Data, IoMode.Read); if (io != null) { var info = io.Detector.Use(pageContent.Data); pageContent.ContentType = info.ContentType; } } if (viewer != null) { viewer.SetContent(pageContent); viewer.BackColor = Colors.White; } if (ContentViewer != viewer) { ContentViewer = viewer; AttachContentViewer?.Invoke(viewer); var display = viewer?.Frontend as IDisplay; if (display == null) { return; } display.ZoomState = ZoomState.FitToWidth; display.ActionDispatcher.Remove(display.ActionDispatcher.GetAction <KeyScrollAction> ()); var scroller = display.ActionDispatcher.GetAction <DigidocKeyScrollAction> (); if (scroller == null) { scroller = new DigidocKeyScrollAction(); scroller.Viewport = () => display.Viewport; display.ActionDispatcher.Add(scroller); } } }