我的需求是這樣的:
一個圖片中顯示一個建筑平面圖,我可以在上面添加很多熱點(類似百度地圖的marker一樣),這個熱點可以有很多種顏色,滑鼠單擊時(或者移動到上面),可以顯示該熱點的詳細資訊。
同時圖片縮放的時候,熱點也保持移動。。。。
想了一晚上沒想到什么好辦法。好久沒寫代碼了,都沒分了。。。大家別嫌少。。。。。。。。-__-
uj5u.com熱心網友回復:
這是一個類似地圖平臺或者CAD平臺的開發,控制元件繼承自usercontrol,相當于在白紙上開發。實作圖片的載入、縮放開發,實作熱點添加、洗掉開發。基礎是需要實作坐標轉換開發。
uj5u.com熱心網友回復:
建立這樣一個資料結構,public class 熱點資訊
{
public Button obj; //用于顯示熱點的控制元件,隨便什么控制元件都可以,可以用shape或圖片框控制元件都行
public Point p; //控制元件左上角相對于父控制元件的坐標
public string tip; //提示資訊
}
1、當創建一個熱點時,動態生成一個熱點資訊類,添加到一個熱點資訊類的集合里。
2、當滑鼠在地圖上移動的時候,遍歷集合,看是否命中熱點
if (x>=熱點資訊類.p.x && x<=熱點資訊類.p.x+熱點資訊類.obj.width &&
y>=熱點資訊類.p.y && y<=熱點資訊類.p.y+熱點資訊類.obj.height)
{
//熱點命中,然后顯示資訊
}
3、當縮放的時候,根據縮放比例動態改變所有熱點資訊類的p
新的p.x = 舊的p.x*(新的地圖寬度/舊的地圖寬度);
新的p.y = 舊的p.y*(新的地圖高度/舊的地圖高度);
提供一個大的思路,只能幫到這了。
uj5u.com熱心網友回復:
謝謝,我看您的截圖里,現在是有類似這種功能的控制元件嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/64927.html
標籤:C#
上一篇:讀Excel資料放入DataTable中,只有1列資料,洗掉原表中最后一行資料,才能正常讀取全部資料,求指導什么情況?
