轉帖|使用教程|編輯:龔雪|2016-06-02 09:25:24.000|閱讀 1185 次
概述:除了使用ApplyCellStyles方法,通過CreateCellContent方法,我們也可以實現單元格設置顏色和樣式的效果。 本文就在此基礎上討論如何可以設置選擇單元格的樣式。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
<ComponentOne Studio for WPF下載>
有了前兩篇的基礎:單元格設置背景色和單元格前景色和字體設置,我們想要設置選擇單元格的背景色,前景色和字體樣式都會非常容易。
除了使用ApplyCellStyles方法,通過CreateCellContent方法,我們也可以實現單元格設置顏色和樣式的效果。 本文就在此基礎上討論如何可以設置選擇單元格的樣式。
CreateCellContent方法設置單元格樣式代碼參考:
public override void CreateCellContent(C1FlexGrid grid, Border bdr, CellRange rng) { base.CreateCellContent(grid, bdr, rng); var tb = bdr.Child as TextBlock; if (tb != null && rng.Column == 2) { ContentPresenter cp = (VisualTreeHelper.GetParent(tb) as ContentPresenter); System.Windows.Media.RotateTransform rotateTransform = new RotateTransform(); rotateTransform.Angle = 50; tb.LayoutTransform = rotateTransform; } }
效果:
了解了這些知識,我們就可以運用這些知識設置選擇的樣式。選擇的前景色,背景色可以通過SelectionBackground和SelectionForeground直接設置。其他字體樣式依然可以通過繼承MyCellFactory的方法實現(CreateCellContent或是ApplyCellStyle)實現。
在方法里添加選擇的判斷,當選擇的時候改變選擇的樣式,代碼參考:
public override void CreateCellContent(C1FlexGrid grid, Border bdr, CellRange rng) { base.CreateCellContent(grid, bdr, rng); var columnindex = rng.Column; var rowindex = rng.Row; var tb = bdr.Child as TextBlock; bool selected = (columnindex == grid.Selection.Column && rowindex == grid.Selection.Row); if (tb != null && selected) { ContentPresenter cp = (VisualTreeHelper.GetParent(tb) as ContentPresenter); System.Windows.Media.RotateTransform rotateTransform = new RotateTransform(); rotateTransform.Angle = 50; tb.LayoutTransform = rotateTransform; tb.FontWeight = FontWeights.Bold; tb.FontSize = 14; } }
注意在SelectionChanged事件調用下刷新:
void flex_SelectionChanged(object sender, CellRangeEventArgs e) { flex.Invalidate(); }
效果如圖:
本文的示例請下載:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網