示例#1
0
        /// <summary>
        /// Instantiation of MainWindow
        /// </summary>
        public MainWindow()
        {
            s_Instance = this;

            InitializeComponent();
            Events.SubscribeEvent("ThemeChanged", (Action)ThemeChangedEvent);

            ThemeManager.AddAccent("BaseAccent", new Uri("pack://application:,,,/Macro Editor;component/Themes/BaseAccent.xaml"));
            ThemeManager.ChangeAppStyle(this, ThemeManager.GetAccent("BaseAccent"), ThemeManager.GetAppTheme("BaseLight"));

            this.DataContextChanged += MainWindow_DataContextChanged;

            CommandBinding findCommand = new CommandBinding(ApplicationCommands.Find, (s, e) =>
            {
                if (((MainWindowViewModel)DataContext).DockManager.ActiveDocument is TextualEditorViewModel)
                {
                    FindReplaceDialog.ShowForFind((((MainWindowViewModel)DataContext).DockManager.ActiveDocument as TextualEditorViewModel).GetTextEditor());
                }
            });

            CommandBindings.Add(findCommand);

            CommandBinding searchCommand = new CommandBinding(NavigationCommands.Search, (s, e) =>
            {
                if (((MainWindowViewModel)DataContext).DockManager.ActiveDocument is TextualEditorViewModel)
                {
                    FindReplaceDialog.ShowForFind((((MainWindowViewModel)DataContext).DockManager.ActiveDocument as TextualEditorViewModel).GetTextEditor());
                }
            });

            CommandBindings.Add(searchCommand);

            CommandBinding replaceCommand = new CommandBinding(ApplicationCommands.Replace, (s, e) =>
            {
                if (((MainWindowViewModel)DataContext).DockManager.ActiveDocument is TextualEditorViewModel)
                {
                    FindReplaceDialog.ShowForReplace((((MainWindowViewModel)DataContext).DockManager.ActiveDocument as TextualEditorViewModel).GetTextEditor());
                }
            });

            CommandBindings.Add(replaceCommand);
        }
        /// <summary>
        /// Thomas Willwacher
        /// </summary>
        /// <param name="editor"></param>
        /// <param name="index"></param>
        private static void ShowForType(TextEditor editor, int index)
        {
            if (theDialog == null)
            {
                theDialog = new FindReplaceDialog(editor);
                theDialog.tabMain.SelectedIndex = index;
                theDialog.Show();
                theDialog.Activate();
            }
            else
            {
                theDialog.tabMain.SelectedIndex = index;
                theDialog.Activate();
            }

            if (!editor.TextArea.Selection.IsMultiline)
            {
                theDialog.txtFind.Text = theDialog.txtFind2.Text = editor.TextArea.Selection.GetText();
                theDialog.txtFind.SelectAll();
                theDialog.txtFind2.SelectAll();
                theDialog.txtFind2.Focus();
            }
        }