使用silverlight做乙個儀錶盤控制項,最好是借助expression blend來實現。先看看這個控制項的效果:
首先需要建立乙個自定義控制項:
我們建立了乙個視覺化的控制項grid,並把當前這個控制項gaugecontrol作為grid的datacontext。
接下來需要完成的是自定義幾個依賴屬性:
顯示的值(value),最大值(maximum)和最小值(minimum),以及不同的量度區間(qualitativeranges)。
例如,value的**:
public double value接下來需要做的是建立乙個rsource檔案,新增乙個style並給它設定乙個名字為layoutroot的控制項模板。set
}dependencyproperty valueproperty = dependencyproperty.register("value", typeof(double),
typeof(gaugecontrol), new propertymetadata(50.0, onvaluepropertychanged));
private static void onvaluepropertychanged(dependencyobject d, dependencypropertychangedeventargs e)
接下來是我們來用expression blend來開啟專案,編輯這個控制項模板。
首先是新增乙個grid,並在這個grid中新增乙個圓:
通過fill和stroke來設定圓的顯示:
在圓中新增乙個itemcontrol,因為我們要使用資料繫結來給顯示小的標記點,所以需要乙個viewmodel來為這些標記點提供資料繫結:
例如:
<itemscontrol
itemssource=""
verticalalignment
="center"
horizontalalignment
="center"
>
<
itemscontrol.itemspanel
>
<
itemspaneltemplate
>
<
canvas
/>
itemspaneltemplate
>
itemscontrol.itemspanel
>
<
itemscontrol.itemtemplate
>
<
datatemplate
>
<
ellipse
fill
="black"
width
="3"
height
="3"
>
<
ellipse.rendertransform
>
<
transformgroup
>
<
translatetransform
x="-1.5"
y="-1.5"
/>
<
translatetransform
x="0"y="
}"/>
<
rotatetransform
angle=""
/>
transformgroup
>
ellipse.rendertransform
>
ellipse
>
datatemplate
>
itemscontrol.itemtemplate
>
itemscontrol
>
需要繫結的就是minorticks.它都有viewmodel提供值。
同理可以繫結大的標記點:
接下來就是指標的建立:
首先需要建立乙個grid:
然後使用path元素來建立乙個菱形並未它加上效果:
可以看這個例子學習使用path來畫圖:
最後一步是新增陰影效果顯得更酷:
完成啦。
對於資料轉換還是需要一些轉換函式,比如,顏色轉化為brush:
教你如何用flash作正弦曲線
1 畫乙個圓,轉換成mc,例項名 圖象 雙擊開啟,延長幀為100 120,不用設定動畫。2 畫乙個三角形,轉換成mc,雙擊開啟,再轉換為按鈕,例項名為 按鈕 回主場景,複製乙份按鈕,例項名分別為 圖象振幅 和 圖象週期 3 主場景寫入以下as,即可測試。我用中文起名,為的是好理解as語句的內容 振幅...
六步教你如何用PADS進行PCB設計?
在使用pads進行pcb設計的過程中,需要對印製板的設計流程以及相關的注意事項進行重點關注,這樣才能更好的為工作組中的設計人員提供系統的設計規範,同時也方便設計人員之間進行相互的交流和檢查。設計的流程 pcb的設計流程分為網表輸入 規則設定 元器件布局 佈線 檢查 複查 輸出六個步驟。2.1 網表輸...
教你如何用Excel表來製作工資條
第一步 新建一excel檔案,在sheet1中存放工資表的原始資料,假設有n列。輸入你要製作的工資條資料,第一行是工資專案 編號 姓名 崗位工資等等 從第二行開始是每個人的工資資料 10001 張三 580等等 有多少資料,你就輸入多少。第二步 最關鍵是這一步 這樣我們在sheet2的a1單元格中輸...