2015-11-12 5 views
1

Я использую Win CE 13, чтобы отобразить некоторую информацию на заправочной панели, используя библиотеку Windows.Forms.Windows Compact 2013, C# и двойная буферизация

Например, объект Windows.Forms.Label используется для отображения текущего времени, а другой - для отображения количества перекачиваемой жидкости. Теперь эти тексты ярлыков назначаются каждые 500 мс, что приводит к некоторому раздражающему мерцанию каждую секунду, особенно если этикетка довольно большая.

К сожалению, свойство Control.DoubleBuffered недоступно на WinCE 2013, которое было моим единственным предположением для решения проблемы.

Возможно, вы можете дать несколько советов о том, как избежать мерцания или, по крайней мере, уменьшить его до минимума.

Greets P.W

ответ

1

Обращаясь к ответу Алана на этом посту: https://stackoverflow.com/a/24294229/5546999 это было достаточно просто написать класс-оболочку для System.Windows.Forms.Label и включить DoubleBuffering с обеспеченным кодом Алана. Поскольку метка фактически содержит только строку в качестве информации, метод Graphics.DrawString абсолютно достаточен. Шрифт может быть извлечен самим классом-оболочкой, поскольку он наследует от System.Windows.Forms.ScrollableControl. Из-за этого шрифт может быть установлен в свойствах, как если бы это был «нормальный» объект метки.

 Смежные вопросы

  • Нет связанных вопросов^_^