WPF ломаная раскладка - PullRequest
2 голосов
/ 22 декабря 2010

У меня проблема с моими приложениями WPF на некоторых системах.А именно, каждый раз, когда приложение запускается, макет кажется полностью нарушенным (нечитаемый текст, элементы и элементы управления, отсутствующие части, появляются там, где их не должно быть и т. Д.).

Я читал, что оноимеет какое-то отношение к графическим драйверам, но как Microsoft может ожидать, что мы будем работать с этой технологией, если они не могут даже обеспечить надлежащую визуализацию на большинстве систем?

Я должен переписать свое последнее приложение на Win-формах, потому чтоЯ не могу быть слишком уверен, что что-то подобное не произойдет на компьютерах моих клиентов (и, учитывая игру чисел, это обязательно произойдет в какой-то момент).Пример:

alt text

Предполагается, что это сетка, расположенная внутри группового блока.Тем не менее, групповой блок кажется полностью разорванным и помещает его дочерние элементы в неправильные места.

Как я уже говорил, это происходит не каждый раз в каждой системе, но случается достаточно часто, что становится серьезной проблемойдля меня.

Любые предложения, кроме переписывания всего в Winforms (это уже мой первый вариант)?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2010

Чтобы предотвратить проблемы с драйверами, вы можете переключиться на рендеринг программного обеспечения для Windows, в котором возникают проблемы с этим кодом:

(PresentationSource.FromVisual(this) as HwndSource).CompositionTarget.RenderMode = RenderMode.SoftwareOnly;

Однако то, что вы видите, не похоже на проблему с драйвером (они 'обычно рассматривается как разрыв или размытие частей пользовательского интерфейса).Размещение элементов обрабатывается механизмом компоновки, работающим на ЦП, поэтому видеокарта на нее не влияет.Если это происходит последовательно на определенных машинах, это, скорее всего, проблема с темой.Если это не происходит постоянно, возможно, вы столкнулись с ошибкой механизма компоновки и можете решить проблему с помощью альтернативной компоновки.

0 голосов
/ 22 декабря 2010

Вы уверены, что это проблема, связанная с драйвером? Водителю вряд ли испортить макет. Это похоже на проблему с механизмом верстки или, возможно, на ошибки в стилях темы на проблемных компьютерах.

Я бы сделал следующее по порядку и проверил бы результаты.

  1. Используйте тему Windows по умолчанию на проблемных компьютерах и проверьте.
  2. Установите целевую версию .Net framework на разумную версию и проверьте. Я думаю, что минимум 3,5 SP1 должно быть достаточно хорошо.
  3. Обновите драйвер дисплея на проблемных компьютерах и проверьте.

Я думаю, вы предполагаете, что проблема связана с драйверами дисплея. Ты уверен? Я использую 3.5 SP1 с довольно сложным пользовательским интерфейсом, работающим на машинах> 200K без проблем.

У меня была одна проблема с драйверами дисплея в драйверах NVidia, но она характерна для теней и правильно документирована на сайте MS Connect.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...