none
如何:创建自定义WPF控件(表格绘制器) RRS feed

  • 问题

  • 大概有如下功能:

    1.添加删除行列

    2.cell的类型选择(checkbox textbox radiobutton等)

    3.单元格合并

    4.单元格内字体

    5.表格外观

    6.border编辑

    如果是WINFORM的 还有点门道 WPF的自定义控件真心有点蒙圈 还请各位高手指点


    为了梦想

    2014年12月22日 7:45

全部回复

  • 题目太发散 我具体点问好了

    实现这个工具我需要最少两个自定义对象

    cell与table

    问题是如果通过类似GRID的方式在table中添加cell 似乎无法实现单元格合并


    为了梦想

    2014年12月22日 8:57
  • WPF 和 Windows Forms 在 UI 上的概念有些不同.

    Windows Forms 的控件通常靈活度很低, 所以對於 UserControl 和 Custom Control 設計的需求會較高.

    但 WPF 控件基本上就像個積木, 本來就可以靈活地運用各式控件互相搭配 (你可以在 Grid 裡塞 Button , 也可以在 Button 裡塞 Grid, 諸如此類 ) , 加上 Style, ControlTemplate, DataTemplate 的運用, 要變出特別的設計並不難

    至於單元格合併, 有 ColumnSpan, RowSpan 附加屬性可用.

    所以其實你的需求也不需要創造甚麼控件 (除非你是要賣控件庫), 基本上就是 Style, ControlTemplate, DataTemplate 搭配運用而已.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年12月22日 9:11
  • 自己用的话确实不需要创建控件

    跟你说的差不多,我主要编辑一个文档编辑器其中包含自定义表格

    ColumnSpan, RowSpan 附加屬性可用.

    可不可以举几个例子 没太懂

    感谢


    为了梦想

    2014年12月22日 9:19
  • WPF 和 Windows Forms 在 UI 上的概念有些不同.

    Windows Forms 的控件通常靈活度很低, 所以對於 UserControl 和 Custom Control 設計的需求會較高.

    但 WPF 控件基本上就像個積木, 本來就可以靈活地運用各式控件互相搭配 (你可以在 Grid 裡塞 Button , 也可以在 Button 裡塞 Grid, 諸如此類 ) , 加上 Style, ControlTemplate, DataTemplate 的運用, 要變出特別的設計並不難

    至於單元格合併, 有 ColumnSpan, RowSpan 附加屬性可用.

    所以其實你的需求也不需要創造甚麼控件 (除非你是要賣控件庫), 基本上就是 Style, ControlTemplate, DataTemplate 搭配運用而已.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    自己用的话确实不需要创建控件

    跟你说的差不多,我主要编辑一个文档编辑器其中包含自定义表格

    ColumnSpan, RowSpan 附加屬性可用.

    可不可以举几个例子 没太懂

    感谢



    为了梦想

    2014年12月22日 9:19
  • 這邊有實例, 基本上他不算合併, 但是可以讓其他控件直接跨行或跨列
    Grid.RowSpan 附加属性

    Grid.ColumnSpan 附加属性

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    2014年12月22日 9:29
  • 這邊有實例, 基本上他不算合併, 但是可以讓其他控件直接跨行或跨列
    Grid.RowSpan 附加属性

    Grid.ColumnSpan 附加属性

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    好吧 先用这种方式解决合并问题

    表格控件一般都要设计边缘,单选其中某一个边缘或者某一个单元格内边缘或者单边的线

    那么问题来了:

    我真心想不出好的方法封装这种东西 难道用border,感觉不太好用。


    为了梦想

    2014年12月24日 0:16