2012-03-12 104 views
0

我的問題是我有繪製城市的路徑,我想把這些城市的圖像放在<Path>標籤裏面。在路徑上添加圖片

爲什麼不能寫這樣的代碼?任何解決方案

回答

1

使用帶有x,y佈局的畫布或自定義面板並將圖像添加到正確的座標(路徑使用的座標相同)。

如果您不知道它們,您可以查詢路徑節點以查找它們的座標。

編輯:由於您的窗口大小相應地變化並且座標「拉伸」,因此您需要來實現自定義面板。 - 從面板繼承並覆蓋度量和排列方法,如下例所示:http://www.wpftutorial.net/CustomLayoutPanel.html

您的自定義面板應該有X和Y附加的依賴項屬性(如Canvas),只應該使用相對座標(0到1) (0到寬度和0到高度)或除以原始路徑寬度和高度以歸一化爲座標。

+0

座標始終根據當前窗口大小進行更改,因此不起作用。 – albatross 2012-03-12 15:46:03

+0

順便問一下,如何查詢路徑節點,你可以寫示例代碼,她的eI會很高興 – albatross 2012-03-12 15:50:25

+0

查看編輯瞭解更多詳情。 – 2012-03-12 15:54:21

2

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

在一個側面說明,什麼可以寫爲子節點/ s的由ContentPropertyAttribute確定的元件的,對於一個ContentControl它指向Content屬性例如(如可在its documentationSyntax部分看到)。

+0

Property Fill不支持圖像? +我已經想要將圖像放在填充路徑上。你可以發送代碼我會很高興 – albatross 2012-03-12 15:48:24

+0

@albatross:我說你應該使用'ImageBrush',而不是'Image';無論如何,對於更復雜的東西,如填充和圖像,你可以使用['VisualBrush'](http://msdn.microsoft.com/en-us/library/system.windows.media.visualbrush.aspx)可以使用控件)。不,我不會「發送代碼」,閱讀文檔,甚至連接所有相關的文檔。 – 2012-03-12 15:59:50

+0

好吧,我試過了,但我不想填充圖像,我只是想把它的原始點的圖像。我意識到我實際上想要獲取城市的畫布xy座標並將圖像放在該座標上。但是從路徑我不能訪問中心點?我怎樣才能在畫布上獲得城堡的x-y座標? – albatross 2012-03-13 08:15:39