道歉,如果已经存在这样的话题,我找不到一个可以解决的问题。
无论如何,我是WPF的新手,想要创建一个自定义控件,它将成为一种图形控件。图形将始终由一个圆圈组成,其中包含几个正方形的矩阵(实际上从几百到几千)。正方形需要响应鼠标单击和鼠标悬停事件(理想情况下可以通过键盘导航/选择)。 square代表我编码的对象。
过去我使用网格控件来显示彩色方块(在CBuilder中使用VCL),但我想制作一个图形版本。 (实际上,我想问的另一个问题是,是否有WPF网格控件可以设置单个单元格的颜色?)
问题是,从哪里开始?我是从画布开始画画吗?我是从现有对象派生出来的吗?我只是对实施的想法有点缺乏,所以你能提供的任何指针或建议都会受到极大的欢迎。
BBZ
答案 0 :(得分:1)
首先,我建议在WPF上获得一个合适的句柄以及它如何处理问题集。它与以前的.NET桌面技术(如WinForms)有很大不同。一旦你对逻辑与UI的分离以及WPF如何处理问题有了一个很好的理解,那么你可以潜入并根据你遇到的内容开始做出正确的决定。
您提到的问题可以通过多种方式解决。关于您使用Grid
的问题,可以这样做,因为这是一种布局类型。在安排视觉结构方面,它远远优于Canvas
。定义的行/列只不过是可以容纳不同UI对象的容器。因此,将Rectangle
推入Grid
并根据需要着色会为您提供所需的效果。这个Rectangle
可以成为一个自定义控件,允许您定义不同的属性,以及鼠标悬停的特定触发器等......
在更高级别,您需要将此逻辑封装为UserControl
,它还将保留您的自定义控件。也许UserControl
包含Grid
,它将使用您的自定义控件。
希望这能为您提供有关如何开始使用的一些想法,但是如果能够更好地了解WPF,将有助于您实现目标。