如果所示,是最終效果。此實現**參考了分享的方法。
直接複製的源**直接執行有問題,在此基礎上稍加更改到現在的效果。新建wpf專案,直接複製後,更改一下命名空間就可以直接執行了。注意.net環境是4.5
namespace clock_temp
/// /// x軸的中心位置
///
private double centerpixtox => this.actualwidth / 2;
/// /// y軸的中心位置
///
private double centerpixtoy => this.actualheight / 2;
/// /// 秒
///
private canvas canvashour = null;
/// /// 分
///
private canvas canvasminute = null;
/// /// 時
///
private canvas canvassecond = null;
/// /// ui更新執行緒
///
private thread thread = null;
/// /// 快取時的顯示控制項
///
private textblock blockhour = null;
/// /// 快取分的顯示控制項
///
private textblock blockminute = null;
/// /// 快取秒的顯示控制項
///
private textblock blocksecond = null;
/// /// 新增控制項
///
private void add(addtype type)
var angle = 360 / count;//角度
var x = centerpixtox - offset;//起始位置
var y = centerpixtoy - offset;
for (int i = 0; i < count; i++)";}
else";}
t.verticalalignment = verticalalignment.stretch;
t.horizontalalignment = horizontalalignment.stretch;
t.tag = i;
t.fontsize = 12;
t.foreground = new solidcolorbrush((color)colorconverter.convertfromstring("#7d7d7d"));
canvas.children.add(t);
var sinv = math.sin((90 - angle * i) * (math.pi / 180));
var cosv = math.cos((90 - angle * i) * (math.pi / 180));
var a = centerpixtoy - y * sinv;
var b = centerpixtox + y * cosv;
canvas.setleft(t, b);
canvas.settop(t, a);
//設定角度
rotatetransform r = new rotatetransform();
r.centerx = centerpixtox;
r.centery = centerpixtoy;
r.angle = angle * i - 90;
t.rendertransform = r;
if (i == time)}}
grid.children.add(canvas);
//獲取當前時間,旋轉對應的角度
rotatetransform rtf = new rotatetransform();
rtf.centerx = centerpixtox;
rtf.centery = centerpixtoy;
rtf.angle = angletime;
canvas.rendertransform = rtf;
}/// /// 渲染時鐘
///
public void show()
/// /// 生成名稱
///
private void addname()
/// /// ui更新執行緒
///
private void threadmethod()
//處理分
if (s == 0 && (int)blockminute.tag != m)
//處理秒
setui(canvassecond, s);
});thread.sleep(1000);}}
/// /// 更新ui
///
///
///
///
private void setui(canvas can, int tag)
else if (type == addtype.hour)
else
rtf.beginanimation(rotatetransform.angleproperty, db);
}else}}
/// /// 秒 動畫完成時
///
///
///
private void dbsecond_completed(object sender, eventargs e)
/// /// 時 動畫完成時
///
///
///
private void dbhour_completed(object sender, eventargs e)
/// /// 分 動畫完成時
///
///
///
private void dbminute_completed(object sender, eventargs e)
/// /// 釋放
///
public void dispose()
/// /// 新增型別
///
public enum addtype}}
ssh框架的一種實現方式
公司使用的是 ssh框架,用 生成工具生成從 dao到 service 的所有 和配置檔案,使用 spring 框架對hibernate 進行事務管理,struts 自己管理自己的元件,spring 管理從service到vo 物件的元件,在 struts 的action 通過來獲取 spring ...
attention的一種實現方式記錄
思想是當前資訊ht與前文多個資訊hs進行比對計算,得到對各個前文資訊hs應該有多少關注度,即at 利用at加權相應的hs,並累加所有加權後的前文資訊,得到綜合前文資訊ct,將其與當前資訊ht進行拼接組合進行 上述流程計算方式如下 這裡的注意力其實可以認為指的是at,因此需要關注at如何計算 上述公式...
OC Singleton的一種簡便實現方式
static dispatch queue t xml request operation processing queue return af xml request operation processing queue 通過dispatch once執行一次來保證af xml request o...