예제 #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;
            }
        }