public FindWindow(Window owner, TabControl?pagesTabControl, TextBox?streamTextBox, Action callOwnerWhenClosing) { Owner = owner; this.pagesTabControl = pagesTabControl; this.streamTextBox = streamTextBox; this.callOwnerWhenClosing = callOwnerWhenClosing; Left = Owner.Left + Owner.ActualWidth * .35; Top = Owner.Top + Owner.ActualHeight * 0.1; InitializeComponent(); if (pagesTabControl is null) { searchedTextBox = streamTextBox !; TextTextbox.Text = searchedTextBox.SelectedText; } else { var selectedTabItem = ((TabItem)pagesTabControl.SelectedItem).Content; if (selectedTabItem is TextBox isTextBox) { searchedTextBox = isTextBox; TextTextbox.Text = searchedTextBox.SelectedText; } else if (selectedTabItem is RichTextBox isRichTextBox) { searchedRichTextBox = isRichTextBox; TextTextbox.Text = searchedRichTextBox.Selection.Text; } } TextTextbox.Select(TextTextbox.Text.Length, 0); NextButton.IsEnabled = true; PreviousButton.IsEnabled = true; PreviewKeyUp += findWindow_PreviewKeyUp; Loaded += findWindow_Loaded; TextTextbox.TextChanged += textTextbox_TextChanged; NextButton.Click += nextButton_Click; PreviousButton.Click += previousButton_Click; Closed += findWindow_Closed; }
private void findWindow_Loaded(object sender, RoutedEventArgs e) { TextTextbox.Focus(); }