Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Соединение 2х линий не идеальное, Не четкие границы 
:(
    Опции темы
Anyone
Дата 18.10.2009, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



В моем графическом редакторе объекты канваса имеют выводы в виде линий, через которые они соединяются линиями связей. Но проблема в том, что при опрежеленных положениях объекта, линии связи  имеют не четкие границы, иногда толщина больше чем заданных 2 пикселя и в местах соедиений выводов с линиями зачастую просматривается разница в толщине. Везде где только можно я выставил SnapsToDevicePixels="True".
Линии связи биндятся к центру коннектора вывода, и  если это значение округливать до целого, то проблема не решается. Выводы находятся в ячейках грида с выравниванием по центру по вертикали.
Линия связи имеет такой шаблон:
Код

                        <Path x:Name="ConnectionPath"
                              IsHitTestVisible="True"
                              StrokeThickness="2"
                              Stroke="{Binding LineBrush}"
                              StrokeDashArray="{Binding StrokeDashArray}"
                              StrokeDashCap="Square"
                              SnapsToDevicePixels="True"
                              Data="{Binding PathGeometry}">
                        </Path>

Как можно решить проблему?

Это сообщение отредактировал(а) Anyone - 18.10.2009, 12:44
PM MAIL   Вверх
rooks
Дата 19.10.2009, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 28.9.2008
Где: Минск

Репутация: 5
Всего: 9



Скриншот бы не помешал
PM MAIL ICQ   Вверх
Anyone
Дата 19.10.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Скриншет сделан при увеличении масштаба, при масштабе 100% еще терпимо.
Красным показаны проблемные участки.

Присоединённый файл ( Кол-во скачиваний: 16 )
Присоединённый файл  Screen.PNG 9,10 Kb
PM MAIL   Вверх
math64
Дата 19.10.2009, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 2
Всего: 72



По-видимому неправильно вычисляются координаты промежуточных точек. Запиши PathGeometry в файл (можно с помощью XamlWriter сохранить ConnectionPath) и проверь.
PM   Вверх
Anyone
Дата 19.10.2009, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Цитата(math64 @  19.10.2009,  11:43 Найти цитируемый пост)
По-видимому неправильно вычисляются координаты промежуточных точек.

С этим все ОК.
Сохранил в строку с помощью XamlWriter'а и увидел то, что там должно быть.
PM MAIL   Вверх
rooks
Дата 21.10.2009, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 28.9.2008
Где: Минск

Репутация: 5
Всего: 9



Это все хваленые пикcели типа double. Не уверен что можно окончательно победить, но можно попробовать поиграться с RenderOptions.EdgeMode. Или попытаться округлять координаты в Path, где это можно.
PM MAIL ICQ   Вверх
Anyone
Дата 21.10.2009, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



rooks,
Выставил RenderOptions.EdgeMode="Aliased" для выводов и линии связи. Стало значительно лучше, границы четкие. Но при определенных значениях масштаба линия иногда не совсем совпадает с выводом, ну тут уже врядли что-то поделаешь, это погрешности вычисления координат.
Спасибо за ответ.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.