private void SetNextFocusedChip(object senderObject, Key pressedKey) { var element = FocusManager.GetFocusedElement(FocusManager.GetFocusScope(Application.Current.MainWindow)); var fe = (element as FrameworkElement).DataContext as WpfApp1.AddChipTemplate; bool isAddChipTemplate = fe != null; IList <UserCase> chipsList = _chipsItem.Items.Cast <UserCase>().Take(this.SelectedItems.Count - 1).ToList(); ContentPresenter cp = null; if (isAddChipTemplate && pressedKey == Key.Left) { TextBox tb = element as TextBox; if (string.IsNullOrEmpty(tb.Text)) { cp = ((_chipsItem.ItemContainerGenerator.ContainerFromIndex(_chipsItem.Items.Count - 2))) as ContentPresenter; } } if (cp != null) { WKChip nextFocusedChip = (VisualTreeHelper.GetChild(cp, 0)) as WKChip; if (nextFocusedChip != null) { nextFocusedChip.Focus(); } } }
private void ChipItem_MouseLeftButtonDown(object sender, RoutedEventArgs e) { WKChip chip = sender as WKChip; chip.Focus(); Console.WriteLine("Focused element: " + ((WpfApp1.User)((System.Windows.Controls.ContentControl)(FocusManager.GetFocusedElement(FocusManager.GetFocusScope(this)))).Content).Name.ToString()); }