private void AppendLine(string line) { if (!_active) { return; } Opfer.AppendText(line); Opfer.AppendText(Environment.NewLine); if (_isAtEnd) { ScrollV.ScrollToEnd(); } }
private void Init() { SourceInitialized += (s, e) => { IntPtr handle = (new WindowInteropHelper(this)).Handle; //HwndSource.FromHwnd(handle).AddHook(new HwndSourceHook(WindowProc)); }; ScrollV.ScrollToEnd(); //ScrollV.ScrollChanged += delegate(object sender, ScrollChangedEventArgs args) { args}; MinimizeButton.Click += (s, e) => WindowState = WindowState.Minimized; MaximizeMinimizeButton.Click += (s, e) => WindowState = WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized; CloseButton.Click += (s, e) => Application.Current.Shutdown(0); }
private void MetroWindow_Loaded(object sender, RoutedEventArgs e) { _active = true; var vm = DataContext as OutputVM; if (vm == null) { return; } lock (vm) { Opfer.AppendText(vm.GetCurrentBufferedOutput()); vm.OutputReceived += OutputReceived; vm.OutputCleared += OutputCleared; ScrollV.ScrollToEnd(); _isAtEnd = true; } }
public void UpdateMessageList() { Dispatcher.Invoke(() => { lock (MessageList) { MessageControl.Children.Clear(); foreach (var message in MessageList) { if (message.SenderId == GlobalBase.CurrentUser.Id) { MessageControl.Children.Add(new SendMessage(message)); } else { MessageControl.Children.Add(new ReceiveMessage(message)); } } ScrollV.ScrollToBottom(); } }); }