0

我有一组从 FrameworkElement 派生的用户控件。每个托管一个或多个绘图视觉对象。这些绘图视觉效果可以表示文本、图形、进度表等,并用于显示各种 HMI 设备的状态。

这些外观方面的工作在网格中很好 - 图像被渲染,文本和背景看起来很好,可以设置依赖属性。但是,当我将它们封装在 Canvas 中时,它们会消失,除了代表标签的绘图视觉效果。即使对于这些,也只有 DrawingContext.DrawText 呈现的文本是可见的。不会出现 dc.DrawImage、cd.DrawRectangle 等执行的操作。

有人可以解释一下为什么会这样。

谢谢

4

1 回答 1

1

您是否正确定位控件?在网格中,每个项目都有边距,而在画布中,您必须为每个元素设置 Canvas.Top 和 Canvas.Left。那些东西不是藏在什么东西下面吗?如果控件实际上是 Canvas 子项的一部分或者根本没有添加,请尝试使用 snoop。

您可以在MSDN上阅读有关 Canvas 的更多信息

于 2014-07-16T09:40:05.453 回答