private void ShowTextInUI(TextHookData textHookData)
 {
     if (DataManager.Instance.SelectHeadDataList.Contains(textHookData.HeadData))
     {
         Application.Current.Dispatcher.BeginInvoke((Action <TextHookData>)((textHookData) => {
             OldText.Text = textHookData.TextData;
             NewText.Text = selectedFilter == null? textHookData.TextData : selectedFilter(textHookData.TextData);
         }), textHookData);
     }
 }
        public void ShowText(TextHookData textHookData)
        {
            if (DataManager.Instance.SelectHeadDataList.Contains(textHookData.HeadData))
            {
                var filterFunc = DataManager.Instance.TextFilterFunc;
                var meCabNodes = DataManager.Instance.MeCabUniDic22Wrapper.ParseSentence(filterFunc == null ? textHookData.TextData : filterFunc(textHookData.TextData));

                // PrintMeCabNodes(meCabNodes);

                Application.Current.Dispatcher.BeginInvoke((Action <TextHookData>)((textHookData) => {
                    TextWarpPanel.Children.Clear();

                    foreach (var meCabNode in meCabNodes)
                    {
                        var tmpStackPanel         = new StackPanel();
                        tmpStackPanel.Orientation = Orientation.Vertical;

                        var textBlock1             = new TextBox();
                        textBlock1.BorderThickness = new Thickness(0);
                        textBlock1.IsReadOnly      = true;
                        textBlock1.Background      = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
                        textBlock1.Text            = $"{meCabNode.Surface}";
                        tmpStackPanel.Children.Add(textBlock1);

                        var textBlock2             = new TextBox();
                        textBlock2.BorderThickness = new Thickness(0);
                        textBlock2.IsReadOnly      = true;
                        textBlock2.Background      = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
                        textBlock2.Text            = $"{meCabNode.LForm}";
                        tmpStackPanel.Children.Add(textBlock2);

                        var border    = new Border();
                        border.Margin = new Thickness(5, 2, 5, 2);
                        border.Child  = tmpStackPanel;

                        TextWarpPanel.Children.Add(border);
                    }
                }), textHookData);
            }
        }
示例#3
0
 private void ShowTextInListBox(TextHookData _)
 {
     // 虽然每次输出都调用一次这个方法有些浪费
     // 但是这不是长期开着的窗口,感觉问题不大
     Application.Current.Dispatcher.BeginInvoke(() => {
         // 把 Items 全清了后,把 TextractorHelper 暂存字典里的值都拿来排序后显示
         TextListBox.Items.Clear();
         DataManager.Instance.TextractorHelper.TextractorOutPutDic.Values
         .OrderBy(x => x.HeadData)
         .ToList()
         .ForEach(x => {
             TextListBox.Items.Add(x);
         });
         // 若存在已经选中的项,选中它们
         // TextListBox.SelectedItems.Clear(); // 上面已经 Clear 了 Items,这里不需要 Clear
         DataManager.Instance.TextractorHelper.TextractorOutPutDic.Values
         .Where(x => DataManager.Instance.SelectHeadDataList.Contains(x.HeadData))    // 改成 Linq 嵌套?
         .ToList()
         .ForEach((x) => {
             TextListBox.SelectedItems.Add(x);
         });
     });
 }