Ejemplo n.º 1
0
        void SourceTextBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            AssociatedObject.Inlines.Clear();
            SearchStringParseResult result = new SearchStringParser.SearchStringParser().Parse(SourceTextBox.Text, SearchStringParseSettings.Default);

            foreach (var info in result.PhaseInfos)
            {
                var run = new Run(info.Text);
                switch (info.Modificator)
                {
                case SearchModificator.None:
                    run.Style = info.Grouped ? RunRegularGroupStyle : RunRegularStyle;
                    break;

                case SearchModificator.Include:
                    run.Style = info.Grouped ? RunIncludeGroupStyle : RunIncludeStyle;
                    break;

                case SearchModificator.Exclude:
                    run.Style = info.Grouped ?  RunExcludeGroupStyle : RunExcludeStyle;
                    break;

                case SearchModificator.Field:
                    run.Style = RunFieldStyle;
                    break;

                case SearchModificator.Group:
                    run.Style = RunGroupQuoteStyle;
                    break;
                }
                AssociatedObject.Inlines.Add(run);
                ResultListBox.ItemsSource = result.PhaseInfos;
            }
        }
Ejemplo n.º 2
0
        void AssociatedObject_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (locked)
            {
                return;
            }
            if (paragraph == null)
            {
                return;
            }
            if (paragraph.Inlines.Count == 0)
            {
                return;
            }
            locked = true;
            List <Inline> inlines = new List <Inline>();
            StringBuilder sb      = new StringBuilder();

            foreach (Run inline in paragraph.Inlines)
            {
                sb.Append(inline.Text);
            }
            SearchStringParseResult result = new SearchStringParser.SearchStringParser().Parse(sb.ToString(), SearchStringParseSettings.Default);

            paragraph.Inlines.Clear();
            foreach (var info in result.PhaseInfos)
            {
                var run = new Run(info.Text);
                switch (info.Modificator)
                {
                case SearchModificator.None:
                    run.Style = info.Grouped ? RunRegularGroupStyle : RunRegularStyle;
                    break;

                case SearchModificator.Include:
                    run.Style = info.Grouped ? RunIncludeGroupStyle : RunIncludeStyle;
                    break;

                case SearchModificator.Exclude:
                    run.Style = info.Grouped ? RunExcludeGroupStyle : RunExcludeStyle;
                    break;

                case SearchModificator.Field:
                    run.Style = RunFieldStyle;
                    break;

                case SearchModificator.Group:
                    run.Style = RunGroupQuoteStyle;
                    break;
                }
                paragraph.Inlines.Add(run);
            }
            AssociatedObject.CaretPosition = AssociatedObject.Document.ContentEnd;
            locked = false;
        }