WPF C# 如何在动态添加的grid控件中添加某个网格的单击事件?

WPF C# 如何在动态添加的grid控件中添加某个网格的单击事件?,第1张

你在网格中放图片用的是什么控件?Image吗,那为何不直接用Image控件的点击事件,你可以去掉Image的水平和垂直对齐属性让Image充满整个单元格,然后添加Image控件的MouseDown/Up事件(Image好像没有Click事件),这样点击哪个Image,你就更换这个Image的Source不就行了

如果要定位具体是哪个单元格,那可以

void ImageMouseDown(object sender, MouseButtonEventArgs e)

{

if (sender is Image)

{

Image image = sender as Image

// 以下是Image控件所处Grid的行和列

int RowIndex = Grid.GetRow(image)

int ColumnIndex = Grid.GetColumn(image)

// 也可以在这里更换图片

image.Source = ....

}

}

解决方法:鼠标事件并不是在column-by-column基础上进行处理的。相反,你应该处理GridView的双击事件,并构建一个GridHitInfo对象以确定双击事件在哪一列开始。事件处理程序的sender参数只可以被转换为GridView类型。

[C#]

//Assign a double click handler

gridView1.DoubleClick += new EventHandler(gridView1_DoubleClick)

private void gridView1_DoubleClick(object sender, EventArgs e)

{

GridView detailGrid = (sender as GridView)

GridHitInfo hitInfo = (detailGrid.CalcHitInfo((e as MouseEventArgs).Location)

//Leave if the user didn't double-click in a cell

if (hitInfo.InRowCell == false)

return

//Leave if the user didn't double-click in the "Person Name" column

if (hitInfo.Column != detailGrid.Columns["PersonName"])

return

//Do something else

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11312768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存