Цифры в ICSharpCode.TextEditor.TextEditorControl выглядят черными (а мой фон черный) - PullRequest
0 голосов
/ 27 апреля 2019

Я работаю над редактором .FF для PS3 MW2 patch_mp.ff. Мой дизайн полностью темный, и все работает отлично, но одно; цифры выглядят черным на черном фоне внутри ICSharpCode.TextEditor.TextEditorControl, я никогда не видел ни одного поста кого-либо еще с этой проблемой в Интернете, поэтому у меня нет способа найти способ ее устранения.

Что я пробовал:

Методы стратегии выделения синтаксиса Внешнее выделение синтаксиса через файл XSHD Установка всех цветов, используемых для 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. (Единицы, которые устанавливают 90% текста черным)

Если есть способ принудительно изменить SystemColors.ControlText на другой цвет, это, вероятно, сработает.

Снимок экрана: Black Numbers

1 Ответ

0 голосов
/ 01 мая 2019

Ответ: Добавление: <Digits name = "Digits" bold = "false" italic = "false" color = "White"/> к моему файлу подсветки синтаксиса, в сочетании с моей стратегией подсветки, затем установка любого желаемого белого цвета: Color.FromArgb(255, 255, 255); Это должно переопределить любые системные цвета.

Также имейте в виду,порядок, в котором вы определяете ваш файл подсветки xshd и моя стратегия подсветки имеет значение.Сам файл и метод «SetHighlighting» должны быть выполнены в первую очередь, а затем стратегия выделения.

Если кому-то еще с этой проблемой нужна помощь, hmu на Discord через http://discord.me/Poppy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...