專案開發需要,需要做乙個圓形的進度條,但是發現 wpf 自帶的進度條控制項progressbar無法直接變成圓形,經過不停的baidu、google,終於找到了基於progressbar構建圓形進度條的方法
在改造progressbar控制項中,我們將用到controltemplate
模板功能以及控制項。
是乙個畫圓弧的控制項(非 wpf 內建的控制項),所以我們必須引用進來,否則使用將編譯出錯。
.net 框架的版本必須大於等於 4.0
在專案的引用中右鍵 ->新增引用,在程式集 -> 擴充套件裡面找到microsoft.expression.drawing
勾選引用
在窗體的 xaml 檔案裡的 標籤新增如下**:xmlns:ed=""
在窗體 xaml 檔案裡加入如下**:
圓形進度條的值應該是 0 ~ 360 度,所以我們在樣式裡直接限制progressbar最大值是 360,寬度和高度根據實際情況設定
以上**僅僅是構建了圓形進度條,效果圖上標題、剩餘時間、備註並沒有progressbar控制項並沒有標題、剩餘時間、備註等屬性字段,所以在樣式的
controltemplate
中就不能直接使用
進行屬性值的繫結。
所以此處我們將使用progressbar控制項的datacontext
屬性進行資料繫結,在樣式的controltemplate
中我們就可以直接使用呼叫資料。
在窗體 xaml 檔案裡加入如下**:
在窗體 cs 檔案裡加入如下**:
// 宣告圓形進度條的資料物件
class progressdata
public string content
public string progress
}
// 此段**防止在窗體 cs 檔案的初始化建構函式即可
// 此處**僅僅做乙個範例,你可以迴圈執行以下**建立多個圓形進度條
// 也可以通過 web service 獲取所需的資料,然後迴圈建立進度條
progressbar pb = new progressbar();
progressdata pd = new progressdata();
pb.value = 240;
pb.style = (style)findresource("styleprogressbar");
pb.foreground = new solidcolorbrush(color.fromrgb(0,255,0));
pb.background = new solidcolorbrush(color.fromrgb(255,255,255));
pd.title = "xx001";
pd.content = "線路板";
pd.progress = "剩餘 13 天";
pb.datacontext = pd;
uiprogressbars.children.add(pb);
自定義圓形ImageView控制項
首先自定義roundimageview繼承imageview package com.bawei.view import android.annotation.suppresslint import android.content.context import android.content.res...
自定義圓形進度條
author wangxiao public class roundprogressbar extends view public roundprogressbar context context,attributeset attrs public roundprogressbar context ...
自定義圓形進度條
之前做專案的時候有用到環形進度條,先是在網上找了一下第三方控制項,發現好用是好用,就是東西太多了,有點複雜,還不如自己寫乙個簡單點適合自己用的。先把自定義控制項的效果圖貼出來。其實我寫的這個控制項很簡單。索性就直接把原始碼貼出來吧。h檔案的內容就是一些宣告 import inte ce progre...