private void UpdateMessageList(JsonValue value) { if (value == null || value.ValueType != JsonValueType.Object) { return; } var valueObj = value.GetObject(); var eventsArr = valueObj.GetNamedArray("Events"); var newEvents = new List <TraceEntry>(); foreach (var evtValue in eventsArr) { if (evtValue.ValueType != JsonValueType.Object) { continue; } var evtObj = evtValue.GetObject(); if (!evtObj.ContainsKey("TaskName") || evtObj.GetNamedString("TaskName") != "Log") { continue; } var fileTime = evtObj.GetNamedNumber("Timestamp"); var timeStamp = DateTime.FromFileTime((long)fileTime); newEvents.Add(new TraceEntry() { TimeStamp = timeStamp.ToString("u"), Level = (TraceLevel)evtObj.GetNamedNumber("Level"), Message = evtObj.GetNamedString("msg").Trim('"'), }); } var task = Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => { foreach (var item in newEvents) { Items.Add(item); } LogScroller.UpdateLayout(); LogScroller.ChangeView(0, LogScroller.ScrollableHeight, null); }); }
private void LogBox_TextChanged(object sender, TextChangedEventArgs e) { LogScroller.ChangeView(0.0f, LogScroller.ExtentHeight, 1.0f); }