Я работаю над редактором .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 на другой цвет, это, вероятно, сработает.
Снимок экрана: