【问题标题】:Adding Image on Paths在路径上添加图像
【发布时间】:2012-03-29 00:46:04
【问题描述】:

我的问题是我有绘制城市的路径,我想将图像放在这些城市中,但无法将图像放在 <Path> 标签中。

为什么我不能写这样的代码?有什么解决办法吗?

【问题讨论】:

    标签: wpf image path


    【解决方案1】:

    您可以为此使用Path.Fill。使用ImageBrush

    在旁注中,可以写为元素​​的子节点的内容由ContentPropertyAttribute 确定,例如,ContentControl 它指向Content 属性(如在its documentationSyntax 部分)。

    【讨论】:

    • 属性填充不支持图片? + 我已经想将图像放在填充路径上。你能发送代码我会很高兴
    • @albatross:我说你应该使用ImageBrush,而不是Image;无论如何,对于填充和图像等更复杂的事情,您可以使用VisualBrush(您可以使用控件)。不,我不会“发送代码”,阅读文档,我什至链接了所有相关的内容。
    • 好的,我试过了,但我不想填充图像,我只想用原始点放置图像。我认识到我实际上想要获取城市的画布 x y 坐标并将我的图像放在该坐标上。但是从路径我无法访问中心点?如何在画布上获取城市的 x-y 坐标?
    • @albatross 在单独的问题中提出。这个问题得到了回答。您可以按照我的建议添加图像,也可以按照 HB 的建议使用图像刷为路径“着色”。
    【解决方案2】:

    使用带有 x,y 位置的画布或自定义面板,并将图像添加到正确的坐标(与路径使用的坐标相同)。

    如果不知道路径节点,可以查询它们的坐标。

    编辑:由于您的窗口大小会发生变化并相应地“拉伸”坐标,因此您需要实现自定义面板。 - 从 Panel 继承并覆盖测量和排列方法,如本例所示:http://www.wpftutorial.net/CustomLayoutPanel.html

    您的自定义面板应该有 X 和 Y 附加的依赖属性(就像 Canvas 一样),只是方法应该使用相对坐标(0 到 1)而不是(0 到宽度和 0 到高度)或除以原始路径宽度和高度标准化为坐标。

    【讨论】:

    • 坐标总是根据当前窗口大小变化,所以它不起作用。
    • 顺便问一下我如何查询路径节点你能写示例代码吗?我会很高兴
    • 抱歉,您可能也必须使用自定义路径 - 常规路径似乎无法与部分分离。你能解释一下你是如何得到路径的吗?
    • 我解决了这个问题,只是使用了常规的 canvas.Top 和 Canvas.Left,因为路径位于与它们一起调整大小的同一画布中
    • 使用自定义面板,您还可以控制图像大小的调整方式,但是,基本画布是一个不错的起点。
    猜你喜欢
    • 1970-01-01
    • 2020-05-26
    • 2018-05-13
    • 2017-05-22
    • 2020-12-24
    • 2015-10-15
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多