2014-07-16 3 views
0

У меня есть набор элементов управления пользователя, полученных из FrameworkElement. Каждый хост один или несколько DrawingVisuals. Эти графические чертежи могут представлять собой текст, графику, индикаторы прогресса и т. Д. И используются для отображения состояний различных устройств HMI.WPF Canvas and DrawingVisuals исчезают

Эти, визуально работающие в сетке - изображения визуализируются, текст и фон выглядят прекрасно, могут быть установлены свойства зависимостей. Однако, когда я инкапсулирую их в Canvas, они исчезают, но только для рисования визуальных представлений, представляющих метки. И даже для них видна только текст, отображаемый DrawingContext.DrawText. Операции, выполняемые dc.DrawImage, cd.DrawRectangle и т. Д., Не отображаются.

Может кто-то пролить свет на то, почему это может быть.

Thanks

+0

Вы позиционирование элементов управления правильно? В сетке у вас есть поля для каждого элемента, где, как и в холсте, вы должны установить Canvas.Top и Canvas.Left для каждого элемента. Разве это не то, что эти предметы скрыты под чем-то? Попробуйте использовать snoop для использования, если элементы управления фактически являются частью Canvas children или если они не были добавлены вообще. – Krishna

+1

Вот и все. Мне нужно, чтобы элементы управления сохраняли свои абсолютные позиции относительно друг друга, в противном случае трубы/клапаны/устройства не выстраиваются в линию. Я не знал о свойствах позиционирования Canvas. Если вы поместите свой комментарий в качестве ответа, я соглашусь. –

+0

Готово. Не знаю, почему у вас есть понижение для этого вопроса. Я просто вернусь и вернусь к 0. – Krishna

ответ

1

Вы правильно позиционируете свои органы управления? В сетке у вас есть поля для каждого элемента, где, как и в холсте, вы должны установить Canvas.Top и Canvas.Left для каждого элемента. Разве это не то, что эти предметы скрыты под чем-то? Попробуйте использовать snoop для использования, если элементы управления фактически являются частью Canvas children или если они не были добавлены вообще.

Вы можете прочитать больше о Canvas на MSDN