private void LogScrollViewer_ScrollChanged(object sender, ScrollChangedEventArgs e) { // User scroll event : set or unset auto-scroll mode if (e.ExtentHeightChange == 0) { // Content unchanged : user scroll event if (LogScrollViewer.VerticalOffset == LogScrollViewer.ScrollableHeight) { // Scroll bar is in bottom // Set auto-scroll mode AutoScroll = true; } else { // Scroll bar isn't in bottom // Unset auto-scroll mode AutoScroll = false; } } // Content scroll event : auto-scroll eventually if (AutoScroll && e.ExtentHeightChange != 0) { // Content changed and auto-scroll mode set Autoscroll LogScrollViewer.ScrollToVerticalOffset(LogScrollViewer.ExtentHeight); } }
private void UpdateLog(string context, bool isClear = false) { if (isClear) { log.Clear(); } OutputLog.Text = log.Append(context).ToString(); LogScrollViewer.ScrollToBottom(); }
void AppendProgress(string displayText, int fileIndex) { Action action = delegate() { tbLog.Text += displayText; LogScrollViewer.ScrollToVerticalOffset(LogScrollViewer.Height); edtProgress.EditValue = fileIndex; }; this.Dispatcher.Invoke(action); }
private void LogMessage(string text) { ThreadUtility.RunOnUIThread(() => { TextBlock textBlock = new TextBlock(); textBlock.Text = text; LogPanel.Children.Add(textBlock); LogScrollViewer.ChangeView(null, LogScrollViewer.ScrollableHeight, null); }); }
private void Log(string message) { if (message == null) { throw new ArgumentNullException(nameof(message)); } LogTextBlock.Text += message + " \n"; // auto scroll LogScrollViewer.ChangeView(0, LogScrollViewer.ScrollableHeight, 1); }
private void LogProgress(string logMessage) { if (String.IsNullOrEmpty(log)) { log = logMessage; } else { log += "\n" + logMessage; } this.Dispatcher.Invoke((Action)(() => { LogScrollViewer.ScrollToEnd(); })); }
private void MainWindow_Loaded(object sender, RoutedEventArgs e) { viewModel.LoadData(); // 로깅시 스크롤 내림 Teller.TellerLogEvent += log => Dispatcher.Invoke(new Action(() => LogScrollViewer.ScrollToEnd())); // 계좌 날짜 컨트롤 제약 설정 this.AccountTo.DisplayDateEnd = this.AccountFrom.DisplayDateEnd = DateTime.Today; this.AccountTo.SelectedDateChanged += AccountTo_SelectedDateChanged; this.AccountFrom.SelectedDateChanged += AccountFrom_SelectedDateChanged; // 도움말 파일 로드 var textRange = new TextRange(HelpTextBox.Document.ContentStart, HelpTextBox.Document.ContentEnd); using (var fileStream = new System.IO.FileStream(ContentManager.getPath("readme.rtf"), System.IO.FileMode.Open)) textRange.Load(fileStream, System.Windows.DataFormats.Rtf); }
private void RunScript_Click(object sender, RoutedEventArgs e) { var cmds = URScript.Text.Split('\n'); for (int i = 0; i < cmds.Length; i++) { var cmd = cmds[i].Trim('\r') + '\n'; urSec.Send(cmd); } URScript.Text = ""; var resp = urSec.Receive(); Logging.Text += resp + Environment.NewLine; LogScrollViewer.ScrollToBottom(); }
private void UpdateLog(string text) { var log = new LogEntry(text); LogEntries.Add(log); if (string.IsNullOrEmpty(SearchString) || text.ToLower().Contains(SearchString.ToLower())) { FilteredLogEntries.Add(log); } if (LogEntries.Count > 1000) { LogEntries.Clear(); FilteredLogEntries.Clear(); } if (IsUserScrollingLog == false) { LogScrollViewer.ScrollToEnd(); } }
public void Append(string text) { txtLog.Text += text; LogScrollViewer.ScrollToBottom(); }
private void OnLogWritten(object sender, string e) { LogTextBox.Text += e; LogScrollViewer.ScrollToEnd(); }
private void TextBlock_SizeChanged(object sender, SizeChangedEventArgs e) { LogScrollViewer.ScrollToBottom(); }
private void Log(string msg) { LogTextBlock.Text += $"[ {DateTime.Now.ToString("HH:mm:ss fff")} ] {msg}\n"; LogScrollViewer.ScrollToBottom(); }