none
c# 照片排版问题 RRS feed

  • 问题

  • (winform)现有一个panel,里面动态生成了数量不定、大小不一的picturebox(后简称pb),然后用鼠标在里面自由拖动pb,要求,各个pb之间不相重叠,不能出边框。判断不重叠功能已经实现,现在的问题是,假如左边有一pbLeft,拖动右边的pbRight向左边移动,当pbRight碰到pbLeft之后,继续拖动pbRight当不再向左移动,只能朝上、下、右三个方向移动,请教如何实现?
    (实例应用,照片排版冲印)


    2011年12月21日 3:10

全部回复

  • 我觉得可以试一下判定拖动到PB的location.X 和位于左边的PB的location.X + 左边PB的宽度。

    但是那样可能会产生闪烁啊什么的问题,潜在本质问题。

    我有个想法:为什么不在动态产生的时候指定Pb的位置和大小。或者根据Pb的大小来动态生成Pb的位置呢?


    Best Regards,
    Rocky Yue[MSFT]
    MSDN Community Support | Feedback to us
    2011年12月22日 5:45
    版主
  • 要求是通过鼠标手动来排,这样灵活度高一点,还请高人进一步指点
    2011年12月24日 1:49
  • 鼠标托图片.当在托的过程图片会闪.是灵活了.但用户体验会下降很多.

     


    GetZ 不抛弃,不放弃.
    • 已建议为答案 zongTest 2011年12月30日 15:26
    2011年12月24日 7:46
  • 拖动的时候闪烁咱暂时先不考虑,主要是拖动控件相碰后,所拖动控件的定位问题,如何才能将其定位到被碰撞控件的旁边,当然,如能能够自动排版的话,那最好不过了,所以还请各位高手费心了
    • 已编辑 Wu Bobo 2011年12月24日 8:22
    2011年12月24日 8:21