【问题标题】:WPF Canvas and DrawingVisuals disappearWPF Canvas 和 DrawingVisuals 消失
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多