public void AddFrame(TimelineControllers.TimelineFrame frame) { try { Bitmap originScreenshot = null; if (frame.Change.ChangeType == TimelineControllers.TypeOfChange.DUPLICATE) { using (var memStream = new MemoryStream(Utilities.GlobalObjects.lastRollBackScreenshotBytes)) { originScreenshot = new Bitmap(memStream); } } else { using (var memStream = new MemoryStream(Utilities.GlobalObjects.currentScreenshotBytes)) { originScreenshot = new Bitmap(memStream); } } if (originScreenshot != null) { originScreenshot = scaleScreenshot(originScreenshot); TimelineFrameUI frameUI = new TimelineFrameUI(); frameUI.setFrameContent(originScreenshot); frameUI.Tag = frame; screenshotContainer.Children.Add(frameUI); frameUI.onFrameSelected += new TimelineFrameUI.FrameSelectedEvent(frameUI_onFrameSelected); moveToFrame(frameUI); } } catch (Exception ex) { Utilities.UtilitiesLib.LogError(ex); } }
private void newTimelineFrameAddedEventHandler(TimelineControllers.TimelineFrame addedFrame) { this.Dispatcher.Invoke(new Action <TimelineControllers.TimelineFrame>((frameToAdd) => { timelineView.AddFrame(frameToAdd); }), new TimelineControllers.TimelineFrame[] { addedFrame }); }
void frameUI_onFrameSelected(object sender) { try { if (currentSelectedFrame != null) { currentSelectedFrame.setSelected(false); } TimelineFrameUI selectedFrame = (TimelineFrameUI)sender; Utilities.GlobalObjects.lastRollBackScreenshotBytes = selectedFrame.getCurrentDisplayBitmapBytes(); selectedFrame.setSelected(true); currentSelectedFrame = selectedFrame; TimelineControllers.TimelineFrame frameData = (TimelineControllers.TimelineFrame)selectedFrame.Tag; if (frameSelectedEventHandler != null) { frameSelectedEventHandler(frameData.Id); } } catch (Exception ex) { Utilities.UtilitiesLib.LogError(ex); } }