我已经开始在WPF中使用dataGrid,但是来自WinForm,它与我习惯的有点不同。
我现在的问题是,我需要得到一个特定的单元格的矩形(这样我就可以访问它的大小和位置)。
在WinForm的datagrid中,有一个方法称为:
cellRectangle = dataGridView.GetCellDisplayRectangle(columnIndex, rowIndex, cutOverflow)
字符串
然而,我似乎在WPF中找不到这样的东西,与我过去在WinForm中所能做的相比,我在网上能找到的一切都非常复杂。
如果可能的话,我希望避免使用任何XAML代码,并全部使用C#代码编写
希望你们中有人能解决我的问题。
2条答案
按热度按时间rfbsl7qr1#
WPF不适用于坐标,而是容器。如果您想将某些内容放入DataGridCell中,请找到它并将新内容放入DataGridCell.Content中。
在我的示例中,您可以输入行号和列号,然后按执行代码按钮。这将在网格中的所需位置放置一个按钮。单击单击我后,按钮消失,显示旧单元格内容。
的数据
字符串
虽然这样做是可行的,但它有点像黑客。如果数据网格重新创建它的内容,你的按钮将丢失。例如,如果用户单击列标题来对网格进行排序,就会发生这种情况。
如果你真的需要单元格的尺寸,你可以用cell.ActualWidth和cell.ActualHeight来获取。但是这些值可能随时改变,例如当用户改变列的宽度时。坐标在WPF中不使用。如果你需要定义控件的确切位置,使用它的Margin来定位它。
x8goxv8g2#
获取单元格的中心:(当这个解决方案与winforms one相比复杂得可笑时,微软为你感到羞耻)
字符串