С трудом понимая в OwnerDraw TreeView, вот полная история:Преследуемый C# OwnerDraw TreeView
A VS2013 WinForms приложение (работает на Windows, 8.1 с TrueType включена, если это имеет значение ...) с TreeView с : DrawMode = OwnerDrawText;
В виде нагрузки, некоторые узлы добавляются к TreeView:
private void Form1_Load(object sender, EventArgs e)
{
// add some nodes
for (int i = 0; i < 20; i++)
{
TreeNode treeNode = treeView1.Nodes.Add(new String('i', 60));
treeNode.Tag = i;
}
}
Далее, я рисую каждый другой узел сам, чтобы показать проблему:
private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
// use ownerdraw every other item
if ((int)(e.Node.Tag) % 2 == 0)
{
Font font = e.Node.NodeFont;
if (font == null) font = e.Node.TreeView.Font;
e.Graphics.DrawString(e.Node.Text, font, Brushes.Red, e.Bounds.X, e.Bounds.Y);
}
else
{
e.DrawDefault = true;
}
}
Глядя на результаты, уведомления как у владельца (красных) узлов элементов есть межсимвольный интервал, который отличается от того, когда древовидная структура рисует свои собственные узлы. И через некоторое время интервал внезапно изменится. Я использую здесь неправильный шрифт? Мне что-то не хватает?
Спасибо за ваше время.
Стоит отметить, что мы * не можем видеть результаты. Вы можете предоставить скриншот. В противном случае, хороший первый вопрос! – BradleyDotNET
Wooops, мой исходный вопрос имел фотографию, но поскольку я никогда не помогал кому-то другому (я знаю: * стыд * * румянец * я буду лучше себя) Мне не разрешалось загружать картинку с вопросом. Я иду и попытаюсь исправить это в ближайшее время. – user4363553
Если вы разместите ссылку, пользователь более высокого уровня часто поможет вам. – BradleyDotNET