예제 #1
0
        private void AppendLine(string line)
        {
            if (!_active)
            {
                return;
            }

            Opfer.AppendText(line);
            Opfer.AppendText(Environment.NewLine);

            if (_isAtEnd)
            {
                ScrollV.ScrollToEnd();
            }
        }
예제 #2
0
        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);
        }
예제 #3
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;
            }
        }
예제 #4
0
        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();
                }
            });
        }