ICSharpCode.TextEditor.TextEditorControl中的数字显示为黑色(我的背景为黑色)

时间:2019-04-27 03:18:05

标签: c# visual-studio winforms

我正在为PS3 MW2 patch_mp.ff制作.FF编辑器,我的设计完全是深色主题,一切正常,但只有一件事。数字在ICSharpCode.TextEditor.TextEditorControl内的黑色背景上显示为黑色,我从未在网上看到其他人对此问题发表过任何文章,因此无法找到解决问题的方法。

我尝试过的事情:

语法突出显示策略方法 通过XSHD文件进行外部语法高亮处理 将所有SystemColors设置为Color.White 等等。

这是我创建TextEditorControl的方式:

        private TextEditorControl AddNewTextEditor(string title)
        {
            tab = new TabPage(title);
            tab.ForeColor = Color.White;
            TextEditorControl textEditorControl = new TextEditorControl();
            textEditorControl.ForeColor = Color.White;
            textEditorControl.Dock = DockStyle.Fill;
            textEditorControl.IsReadOnly = false;
            textEditorControl.ContextMenuStrip = contextMenuStrip2;
            textEditorControl.Text = readgsc;
            TextEditorControl Editor = textEditorControl;
            Font font = new Font("Consolas", 9f);
            if (font.Name == "Consolas")
                Editor.Font = font;
            Editor.ForeColor = Color.White;
            Editor.SetHighlighting("GSC");
            Editor.BorderStyle = BorderStyle.FixedSingle;
            Editor.EnableFolding = true;
            Editor.ShowVRuler = false;
            Editor.Document.FormattingStrategy = new FormattingStrategy();
            Editor.Document.FoldingManager.FoldingStrategy = new MyFolding();
            Editor.IndentStyle = IndentStyle.Smart;
            Editor.Document.DocumentChanged += (sender, e) => SetModifiedFlag(Editor, true);
            Editor.TextChanged += new EventHandler(FileHasBeenEdited);

            //BackColor Is Color.Black\\
            HighlightColor highlightColor = new HighlightColor(Color.White, BackColor, false, false);

            DefaultHighlightingStrategy highlightingStrategy = Editor.Document.HighlightingStrategy as DefaultHighlightingStrategy;
            highlightingStrategy.SetColorFor("Default", highlightColor);
            highlightingStrategy.SetColorFor("LineNumbers", highlightColor);
            highlightingStrategy.SetColorFor("FoldLine", highlightColor);
            highlightingStrategy.SetColorFor("Digits", highlightColor);

            tab.Enter += delegate (object sender, EventArgs e)
            {
                TabPage tabPage = (TabPage)sender;
                //tabPage.BeginInvoke(new Action<TabPage>(delegate (TabPage p) {p.Controls[0].Focus();}), new object[]
                //{
                //    tabPage
                //});
            };
            tab.Controls.Add(Editor);
            //fileTabs is a TabControl With No Tabs Until Added Programatticaly\\
            fileTabs.Controls.Add(tab);
            fileTabs.SelectedTab = tab;
            if (_editorSettings == null)
            {
                _editorSettings = Editor.TextEditorProperties;
                OnSettingsChanged();
            }
            else
                Editor.TextEditorProperties = _editorSettings;
            return Editor;
        }

结果是我需要什么

我可以在黑色主题上阅读的数字。

请注意:此问题是由于系统设置了颜色,此问题仅在Windows 10之前的OS上发生(将90%的文本设置为黑色的人)

如果有一种方法可以将SystemColors.ControlText强制更改为另一种颜色,那可能会起作用。

问题的屏幕截图:Black Numbers

1 个答案:

答案 0 :(得分:0)

答案:添加: <Digits name = "Digits" bold = "false" italic = "false" color = "White"/> 到我的语法突出显示文件中,再结合我的突出显示策略,然后将您想要的白色设置为: Color.FromArgb(255, 255, 255); 那应该覆盖所有系统颜色。

如果其他有此问题的人需要帮助,请通过http://discord.me/Poppy

在Discord上使用hmu