private static NotifyCollectionChangedEventHandler LogItemChangedEventHandler(LogItemViewEx logItemViewEx) { return((sender, args) => { if (VisualTreeHelperEx.FindDescendantByName(logItemViewEx, @"logListView") is ListView lstViewItem) { if (logItemViewEx.AutoScrollItems && logItemViewEx._isLogListAutoScroll) { var data = (ObservableCollection <LogItem>)logItemViewEx.GetValue(MsgLogItemsProperty); var lastestOne = data.LastOrDefault(); if (lastestOne != null && lastestOne.Level >= logItemViewEx.AutoScrollLevel) { lstViewItem.Dispatcher.BeginInvoke(DispatcherPriority.Input, (Action) delegate { lstViewItem.SelectedIndex = lstViewItem.Items.Count - 1; lstViewItem.ScrollIntoView(lstViewItem.SelectedItem); //var item = lstViewItem.ItemContainerGenerator.ContainerFromItem(lstViewItem.SelectedItem) as ListViewItem; //item?.Focus(); }); } } } }); }
/// <summary> /// Mouse wheel used /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DesignerScrollViewer_OnPreviewMouseWheel(object sender, MouseWheelEventArgs e) { if (Keyboard.Modifiers != 0) { TableViewControl viewControl = e.Source as TableViewControl; if (viewControl != null) { try { var grid = viewControl.TableDataGrid; var item = grid.SelectedItem; var row = grid.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow; var cbox = VisualTreeHelperEx.FindDescendantByName(row, "DataTypeComboBox") as ComboBox; if (cbox != null) { cbox.IsDropDownOpen = false; } } catch (Exception exc) { Trace.WriteLine(exc.Message); } } } if ((Keyboard.Modifiers & ModifierKeys.Control) != 0) { double newScale = ViewModel.Scale; if (e.Delta > 0) { newScale += 0.05; } else if (e.Delta < 0) { newScale -= 0.05; } ViewModel.ChangeZoomCommand.Execute(newScale.ToString("G")); e.Handled = true; } else if ((Keyboard.Modifiers & ModifierKeys.Shift) != 0) { DesignerScrollViewer.ScrollToHorizontalOffset(DesignerScrollViewer.HorizontalOffset + e.Delta); e.Handled = true; } }
/// <summary> /// Moves the custom caret on the canvas. /// </summary> private void MoveCustomCaret() { var textBox = VisualTreeHelperEx.FindDescendantByName(this, "FakeBox") as TextBox; var caretLocation = textBox.GetRectFromCharacterIndex(CaretIndex).Location; var border = VisualTreeHelperEx.FindDescendantByName(this, "Caret") as UIElement; if (!double.IsInfinity(caretLocation.X)) { Canvas.SetLeft(border, caretLocation.X); } if (!double.IsInfinity(caretLocation.Y)) { Canvas.SetTop(border, caretLocation.Y); } }
private void LoginWnd_Loaded(object sender, RoutedEventArgs e) { var tb = VisualTreeHelperEx.FindDescendantByName(this, "tbUserName"); var tb2 = VisualTreeHelperEx.FindDescendantByName(this, "tbPassword"); if (tb is TextBox tbUserName) { if (tbUserName.IsEnabled) { tbUserName.Focus(); } } else if (tb2 is TextBox tbPassword) { if (tbPassword.IsEnabled) { tbPassword.Focus(); } } }