【发布时间】:2014-07-16 09:26:58
【问题描述】:
我有一组从 FrameworkElement 派生的用户控件。每个托管一个或多个绘图视觉对象。这些绘图可视化可以表示文本、图形、进度表等,并用于显示各种 HMI 设备的状态。
这些,外观方面的工作在网格中很好 - 图像被渲染,文本和背景看起来很好,可以设置依赖属性。但是,当我将它们封装在 Canvas 中时,它们会消失,除了代表标签的绘图视觉效果。即使对于这些,也只有 DrawingContext.DrawText 呈现的文本是可见的。 dc.DrawImage、cd.DrawRectangle 等操作不出现。
有人可以解释一下为什么会这样吗?
谢谢
【问题讨论】:
-
您的控件定位正确吗?在网格中,每个项目都有边距,而在画布中,您必须为每个元素设置 Canvas.Top 和 Canvas.Left。那些东西不是藏在什么东西下面吗?如果控件实际上是 Canvas 子项的一部分或者根本没有添加,请尝试使用 snoop。
-
就是这样。我需要控件保持它们相对于彼此的绝对位置,否则管道/阀门/设备将不会对齐。我不知道 Canvas 的定位属性。如果你把你的评论作为答案,我会接受。
-
完成。不知道为什么你对这个问题投了反对票。我只会投票并将其恢复为 0。
标签: wpf user-controls drawingcontext