WPF 控制項自定義模板之 圓形進度條

2021-10-12 07:10:32 字數 1937 閱讀 5240

專案開發需要,需要做乙個圓形的進度條,但是發現 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...