我有一组从FrameworkElement派生的用户控件。每个主机都有一个或多个DrawingVisuals。这些绘图视觉效果可以表示文本,图形,进度表等,并用于显示各种HMI设备的状态。
这些在网格中表现良好的工作 - 渲染图像,文本和背景看起来很好,可以设置依赖属性。但是,当我将它们封装在Canvas中时,它们会消失,但是对于表示标签的绘图视觉效果。甚至对于这些,只有DrawingContext.DrawText呈现的文本是可见的。由dc.DrawImage,cd.DrawRectangle等执行的操作不会出现。
有人可以说明为什么会这样。
由于
答案 0 :(得分:1)
您是否正确定位控件?在网格中,每个项目都有边距,在画布中,您必须为每个元素设置Canvas.Top和Canvas.Left。难道不是那些物品藏在某物下面吗?如果控件实际上是Canvas子项的一部分,或者根本没有添加它们,请尝试使用snoop。
您可以在MSDN
上阅读有关Canvas的更多信息