Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА> с чем реально задница, так это с РичТекстом, встроенный не умеет почти ничего, а написать свой с нормальным перфомансом, почти нереально
Здравствуйте, hattab, Вы писали:
H>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>> с чем реально задница, так это с РичТекстом, встроенный не умеет почти ничего, а написать свой с нормальным перфомансом, почти нереально
H>Интересно, почему?
деталей уже не помню, но суть в том, что встроенный форматированный текст слишком уж урезанный, а если делаешь свой, то единственный способ,это положить кучу TextBlock элементов, фактически на каждый участок текста с другим форматированием или на каждое слово, если например нужно выравнивание по ширине и стандартный пробел не подходит. Проблемы начинаются, когда изменяется одновременно контент и позиция большого числа элементов — например если меняем ширину текста и происходит полное переразбиение на кусочки, так как меняются все переносы, или когда быстро скроллим — это тормозит.
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА> деталей уже не помню, но суть в том, что встроенный форматированный текст слишком уж урезанный, а если делаешь свой, то единственный способ,это положить кучу TextBlock элементов, фактически на каждый участок текста с другим форматированием или на каждое слово, если например нужно выравнивание по ширине и стандартный пробел не подходит. Проблемы начинаются, когда изменяется одновременно контент и позиция большого числа элементов — например если меняем ширину текста и происходит полное переразбиение на кусочки, так как меняются все переносы, или когда быстро скроллим — это тормозит.
А, т.е. вариант с ручным парсингом и самостоятельной отрисовкой исключается. Тогда понятно
Здравствуйте, hattab, Вы писали:
H>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>> деталей уже не помню, но суть в том, что встроенный форматированный текст слишком уж урезанный, а если делаешь свой, то единственный способ,это положить кучу TextBlock элементов, фактически на каждый участок текста с другим форматированием или на каждое слово, если например нужно выравнивание по ширине и стандартный пробел не подходит. Проблемы начинаются, когда изменяется одновременно контент и позиция большого числа элементов — например если меняем ширину текста и происходит полное переразбиение на кусочки, так как меняются все переносы, или когда быстро скроллим — это тормозит.
H>А, т.е. вариант с ручным парсингом и самостоятельной отрисовкой исключается. Тогда понятно
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА> H>А, т.е. вариант с ручным парсингом и самостоятельной отрисовкой исключается. Тогда понятно
ЕА> там НЕТ механизма самостоятельной отрисовка
Как так? Что, правда нельзя кастомную отрисовку текста сделать?
Здравствуйте, hattab, Вы писали:
H>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>> H>А, т.е. вариант с ручным парсингом и самостоятельной отрисовкой исключается. Тогда понятно
ЕА>> там НЕТ механизма самостоятельной отрисовка
H>Как так? Что, правда нельзя кастомную отрисовку текста сделать?
Здравствуйте, hattab, Вы писали:
H>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>> H>А, т.е. вариант с ручным парсингом и самостоятельной отрисовкой исключается. Тогда понятно
ЕА>> там НЕТ механизма самостоятельной отрисовка
H>Как так? Что, правда нельзя кастомную отрисовку текста сделать?
Было нельзя. И это реально порой бесит.
Тут не только с текстом проблемма (кстати, Visual studio, которая на WPF, текст таки рендерит ручками, а не WPF'ом).
Сейчас вроде есть хак с WritableBitmap, но тут я не сильно в курсе.
В 5-ой версии обещали дать возможность встроить XNA движок в контрол, но это на мой взгляд тот еще костыль.
Re[15]: No mention of either Silverlight or .NET on Windows
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА> ЕА>> там НЕТ механизма самостоятельной отрисовка
ЕА> H>Как так? Что, правда нельзя кастомную отрисовку текста сделать?
ЕА> Было бы можно, я бы не жаловался
Здравствуйте, syrompe, Вы писали:
S>Здравствуйте, hattab, Вы писали:
H>>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>>> H>А, т.е. вариант с ручным парсингом и самостоятельной отрисовкой исключается. Тогда понятно
ЕА>>> там НЕТ механизма самостоятельной отрисовка
H>>Как так? Что, правда нельзя кастомную отрисовку текста сделать?
S>Было нельзя. И это реально порой бесит. S>Тут не только с текстом проблемма (кстати, Visual studio, которая на WPF, текст таки рендерит ручками, а не WPF'ом). S>Сейчас вроде есть хак с WritableBitmap, но тут я не сильно в курсе.
рисовать туда текст вручную попиксельно? спасибо, мне без этого есть чем заняться
S>В 5-ой версии обещали дать возможность встроить XNA движок в контрол, но это на мой взгляд тот еще костыль.
5-ку еще не смотрел, но вроде там только 3-х мерка, рисовать текст полигонами тоже неохота
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>рисовать туда текст вручную попиксельно? спасибо, мне без этого есть чем заняться
ну первое что нагуглил: здесь
ЕА>5-ку еще не смотрел, но вроде там только 3-х мерка, рисовать текст полигонами тоже неохота
Ну где 3d там 2d сделать не проблемма.
А текст там будет битмапами скорее всего.
Т.е. генерите что-то вроде этого и рисуете.
Ну и ни о каком сглаживании и прочем речи быть не может.
Re[15]: No mention of either Silverlight or .NET on Windows
Здравствуйте, syrompe, Вы писали:
S>Тут не только с текстом проблемма (кстати, Visual studio, которая на WPF, текст таки рендерит ручками, а не WPF'ом).
Что имеется ввиду под "рендерит ручками"?
Re[17]: No mention of either Silverlight or .NET on Windows
Здравствуйте, syrompe, Вы писали:
S>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>>рисовать туда текст вручную попиксельно? спасибо, мне без этого есть чем заняться
S>ну первое что нагуглил: S>здесь
там те же TextBlock-и отрисовываются, так что выигрыша не будет
ЕА>>5-ку еще не смотрел, но вроде там только 3-х мерка, рисовать текст полигонами тоже неохота
S>Ну где 3d там 2d сделать не проблемма. S>А текст там будет битмапами скорее всего. S>Т.е. генерите что-то вроде этого и рисуете. S>Ну и ни о каком сглаживании и прочем речи быть не может.
Здравствуйте, MxMsk, Вы писали:
MM>Здравствуйте, syrompe, Вы писали:
S>>Тут не только с текстом проблемма (кстати, Visual studio, которая на WPF, текст таки рендерит ручками, а не WPF'ом). MM>Что имеется ввиду под "рендерит ручками"?
Это когда у контрола переопределен метод Render.
Re[18]: No mention of either Silverlight or .NET on Windows
Здравствуйте, Евгений Акиньшин, Вы писали:
S>>ну первое что нагуглил: S>>здесь
ЕА>там те же TextBlock-и отрисовываются, так что выигрыша не будет
Так фишка в том, что эти TextBlock-и не добавляются в Visual tree,а работа с этим деревом основной тормоз.
S>>Ну и ни о каком сглаживании и прочем речи быть не может.
ЕА>зачем же мне текст без сглаживания
Ну в тех же игрушках, где разрешение и размер шрифта фиксированы, этого хватает.
Re[17]: No mention of either Silverlight or .NET on Windows
Здравствуйте, syrompe, Вы писали:
S>>>Тут не только с текстом проблемма (кстати, Visual studio, которая на WPF, текст таки рендерит ручками, а не WPF'ом). MM>>Что имеется ввиду под "рендерит ручками"? S>Это когда у контрола переопределен метод Render.
Так внутри OnRender все-равно используются средства WPF, только более низкоуровневые.
Re[18]: No mention of either Silverlight or .NET on Windows
Здравствуйте, MxMsk, Вы писали:
MM>Здравствуйте, syrompe, Вы писали:
MM>Так внутри OnRender все-равно используются средства WPF, только более низкоуровневые.
Здравствуйте, syrompe, Вы писали:
MM>>Так внутри OnRender все-равно используются средства WPF, только более низкоуровневые. S> protected override void OnRender(DrawingContext dc) S> { S> base.OnRender(dc); S> dc.DrawRectangle(Brushes.Black, pen, new Rect(0, 0, 600, 400)); S> dc.DrawEllipse(Brushes.Green, pen, new Point(300, 300), 50, 50); S> dc.DrawText(.......); S> } S>-байндинги S>-стили S>-многа чего
Оригинально. Эдак мы докатимся, что это и не .Net