重生之大文豪,蜿龙国语,兆瑞环球网
效果图:使弹出的列表框紧随在单元格的下边缘。
第一次,尝试在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}">
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 }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Net Core Web Api项目与在NginX下发布的方法
asp.net core3.1 引用的元包dll版本兼容性问题解决方案
IdentityServer4实现.Net Core API接口权限认证(快速入门)
ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现
网友评论