当前位置: 移动技术网 > IT编程>开发语言>.net > WPF学习笔记(2):准确定位弹出窗

WPF学习笔记(2):准确定位弹出窗

2019年01月07日  | 移动技术网IT编程  | 我要评论

重生之大文豪,蜿龙国语,兆瑞环球网

效果图:使弹出的列表框紧随在单元格的下边缘。

第一次,尝试在xaml中设置popup的定位方式:placement="mouse"。基本能够定位,但当在输入前移动鼠标,列表框就会随鼠标位置显示,偏离了预定位置。

第二次,尝试在xaml中设置popup的定位目标:placementtarget="{binding elementname=txtacctname}">。但由于textbox位于datagridtemplatecolumn中,不起作用。

第三次,改变思路,通过获取textbox的位置后,再以此设置popup的位置,成功解决问题。定位目标设置为datagrid,定位方式设置为relative(以目标控件的左上角为原点),代码如下:

<popup name="popacct" staysopen="false" placement="relative"  maxheight="500" placementtarget="{binding elementname=dgvoucher}">
xaml code

 

1 private void txtacctname_gotfocus(object sender, routedeventargs e)
2 {
3       point position = (sender as textbox).translatepoint(new point(), dgvoucher);
4       popacct.horizontaloffset = position.x;
5       popacct.verticaloffset = position.y + dgvoucher.rowheight;  
6 }
c# code

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网