У меня есть элемент управления .NET ListView, в котором я отображаю трассировку стека. Я использовал ListView, так как мне нужно было управлять шрифтом/цветом определенных строк.
Однако кажется, что существует какой-то максимум в отношении ширины столбцов, либо количества отображаемых символов, либо количества пикселей, которое может быть в столбце.
Вот простой пример LINQPad, показывающий проблему:
void Main()
{
using (var fm = new Form())
{
ListView lv = new ListView();
fm.Controls.Add(lv);
lv.Dock = DockStyle.Fill;
lv.View = View.Details;
lv.Columns.Add("C", -1, HorizontalAlignment.Left);
string line = new string('W', 258) + "x";
lv.Items.Add(line);
line = new string('W', 259) + "x";
lv.Items.Add(line);
lv.AutoResizeColumn(0, ColumnHeaderAutoResizeStyle.ColumnContent);
lv.Columns[0].Width.Dump();
fm.ShowDialog();
}
}
Снимок экрана:
Как видите, строка, содержащая 258 букв W + X, показывает x, тогда как следующая строка, содержащая одну дополнительную W, не показывает x.
Результат вычисления ширины показывает, что текущая ширина столбца составляет 2864 пикселя.
Вопрос в следующем: можно ли что-нибудь настроить в ListView, чтобы обойти это ограничение?