Я использую древовидное представление (формы Windows) в приложении, которое имеет странную тенденцию отображать жирный текст при загрузке:

Когда древовидное представление полностью загружено, тексты отображаются нормально:

Я хочу, чтобы текст не выделялся жирным шрифтом во время загрузки.
Итак, чтобы дать некоторую техническую информацию: для древовидного представления я использую TreeviewDrawMode -> OwnerDrawText:
trvScheduling.DrawMode = TreeViewDrawMode.OwnerDrawText; А в событии OnDrawNode в виде дерева я использую следующий код:
защищенное переопределение void OnDrawNode(DrawTreeNodeEventArgs e) { if (e.Node == null) return; if (e.Node.IsVisible == false) return; var selected = (e.State & TreeNodeStates.Selected) == TreeNodeStates.Selected; //var unfocused = !e.Node.TreeView.Focused; если (e.Node.TreeView.CheckBoxes == false) { // нам нужно отрисовать владельца только на выбранном узле // и когда древовидное представление не сфокусировано, иначе пусть ОС сделает это за нас если (выбрано) { вар шрифт = e.Node.NodeFont ?? e.Node.TreeView.Font; Кисть SolidBrush = новая SolidBrush(WinFormsUITheme.styleColor); e.Graphics.FillRectangle(solidBrush, e.Bounds); TextRenderer.DrawText(e.Graphics, e.Node.Text, шрифт, e.Bounds, Color.White, TextFormatFlags.GlyphOverhangPadding); } еще { e.DrawDefault = правда; } } еще { //if (e.Node == null) return; if ((e.State & TreeNodeStates.Selected) != 0) { вар шрифт = e.Node.NodeFont ?? e.Node.TreeView.Font; Кисть SolidBrush = новая SolidBrush(Color.White); e.Graphics.FillRectangle(solidBrush, new Rectangle(e.Bounds.Left, e.Bounds.Top, e.Bounds.Right, 16)); } //Используем фон и текст узла по умолчанию. еще { //e.DrawDefault = true; } // Если тег узла присутствует, рисуем его строковое представление // справа от текста метки. если (e.Node.ToolTipText != ноль) { //e.Node.Text внутренний цвет; bool isValidInt = int.TryParse(e.Node.ToolTipText.ToString(), цвет вывода); если (isValidInt) { Кисть colorBrush = new SolidBrush(Color.FromArgb(color)); //e.Graphics.FillRectangle(colorBrush, new Rectangle(e.Bounds.Right + 2, e.Bounds.Top, 10, 10)); e.Graphics.FillRectangle(colorBrush, new Rectangle(e.Bounds.Left + 2, e.Bounds.Top + 2, 10, 10)); e.Graphics.DrawString(e.Node.Text.ToString(), tagFont, Кисти.Черный, e.Bounds.Left + 12, e.Bounds.Top); } еще { e.DrawDefault = правда; } } } } Интересно, может быть, что-то идет «не так» в событии OnDrawNode, из-за которого появляются эти «жирные» тексты во время загрузки древовидного представления. Кто-нибудь знает, что является причиной этого?