WPF怎么横向合并邻居的两个Grid单元格和内容。

柴米油盐酱醋茶- 2018-03-22 09:00:39

这个是Grid单元格内添加的控件,怎么实现鼠标点击拖动合并两个邻居的单元格。
...全文
1605 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mk_lucifer 2018-03-22
  • 打赏
  • 举报
回复

 <Rectangle  Grid.Column="0" Grid.Row="0"  Grid.ColumnSpan="2"  Grid.ColumnSpan="2"   Margin="5,5,5,5"/>
就像上面打,你的矩形会占4个格子得控件,而且上下左右边距都是5像素,当你窗口变大,Grid变大,你的边距仍然是5,即Rectangle实际长,宽会缩放,这是一种布局包括尺寸得描述规则,WPF不止 X,Y,Width,Height这一种描述区域得方法,不同得容器有不同得属性。。。
  • 打赏
  • 举报
回复
引用 8 楼 summergo123321 的回复:
准确的说WPF控件所有得布局属性,并不是真正意义得属性,因为控件没有这些语法上定义得那种属性,即它不是Property。。。 [quote=引用 6 楼 qq_41078703 的回复:] [quote=引用 5 楼 summergo123321 的回复:] 用WPF不要依赖鼠标,这是我的经验,直接打字最好,比如Grid.ColumnSpan=2 (跨越两行), 因为微软得所谓鼠标智能修改属性就是一坨,很难达到你想要得效果。。 Grid布局常用得属性是, Grid.Column 列 Grid.Row 行 Grid.ColumnSpan 所占列得个数 GridRowSpan 所占行得个数 Margin(调整边距) HorizontalAlignment(水平对齐方式), VerticalAlignment(垂直对其方式) 这东西不是winform,纯粹靠坐标定位,鼠标没办法调整所有属性,很难达到想要得效果,所以经常让人很无奈,如果不是Canvas容器,尽量码字。。。
可是我要选中两个控件,然后合并它。[/quote] 我说得很明确,不要依赖鼠标,WPF也没有只靠鼠标实现此类功能得方法,写代码,懂了么?? 想合并到一个位置,只要分别修改两个控件得属性即可。。。[/quote] 懂了,只是现在想要获取到我想让哪个控件的GridRowSpan变化
mk_lucifer 2018-03-22
  • 打赏
  • 举报
回复
你也可以纯靠拉控件宽度,达到效果,但结局在窗口变化,Grid缩放得时候,可能达不到你得效果,需要用属性准确描述你想要得结果,这种事不要依赖鼠标。。
mk_lucifer 2018-03-22
  • 打赏
  • 举报
回复
Grid只是一种容器,他是代表一种控件得布局规则方式,和Canvas不同得仅仅是,他的布局方式不靠位置坐标,而是靠行列和边距以及对其方式,这种对象在安卓上也有,我不知道你所谓得合并想表达什么意思,(WPF控件没有X,Y,left,top属性,只有Canvas.Top,Canvas.left属性,这写属性只有在Canvas里才有效,其他容器里是什么数都无所谓,同理Grid.前缀得属性也只在Grid容器里有效) Grid本身不存在合并单元格,需要控件自己修改自己得属性决定自己占多少个单元格,不存在修Grid属性让它几个单元格合并。。。
mk_lucifer 2018-03-22
  • 打赏
  • 举报
回复
准确的说WPF控件所有得布局属性,并不是真正意义得属性,因为控件没有这些语法上定义得那种属性,即它不是Property。。。
引用 6 楼 qq_41078703 的回复:
[quote=引用 5 楼 summergo123321 的回复:] 用WPF不要依赖鼠标,这是我的经验,直接打字最好,比如Grid.ColumnSpan=2 (跨越两行), 因为微软得所谓鼠标智能修改属性就是一坨,很难达到你想要得效果。。 Grid布局常用得属性是, Grid.Column 列 Grid.Row 行 Grid.ColumnSpan 所占列得个数 GridRowSpan 所占行得个数 Margin(调整边距) HorizontalAlignment(水平对齐方式), VerticalAlignment(垂直对其方式) 这东西不是winform,纯粹靠坐标定位,鼠标没办法调整所有属性,很难达到想要得效果,所以经常让人很无奈,如果不是Canvas容器,尽量码字。。。
可是我要选中两个控件,然后合并它。[/quote] 我说得很明确,不要依赖鼠标,WPF也没有只靠鼠标实现此类功能得方法,写代码,懂了么?? 想合并到一个位置,只要分别修改两个控件得属性即可。。。
  • 打赏
  • 举报
回复
引用 5 楼 summergo123321 的回复:
用WPF不要依赖鼠标,这是我的经验,直接打字最好,比如Grid.ColumnSpan=2 (跨越两行), 因为微软得所谓鼠标智能修改属性就是一坨,很难达到你想要得效果。。 Grid布局常用得属性是, Grid.Column 列 Grid.Row 行 Grid.ColumnSpan 所占列得个数 GridRowSpan 所占行得个数 Margin(调整边距) HorizontalAlignment(水平对齐方式), VerticalAlignment(垂直对其方式) 这东西不是winform,纯粹靠坐标定位,鼠标没办法调整所有属性,很难达到想要得效果,所以经常让人很无奈,如果不是Canvas容器,尽量码字。。。
可是我要选中两个控件,然后合并它。
mk_lucifer 2018-03-22
  • 打赏
  • 举报
回复
用WPF不要依赖鼠标,这是我的经验,直接打字最好,比如Grid.ColumnSpan=2 (跨越两行), 因为微软得所谓鼠标智能修改属性就是一坨,很难达到你想要得效果。。 Grid布局常用得属性是, Grid.Column 列 Grid.Row 行 Grid.ColumnSpan 所占列得个数 GridRowSpan 所占行得个数 Margin(调整边距) HorizontalAlignment(水平对齐方式), VerticalAlignment(垂直对其方式) 这东西不是winform,纯粹靠坐标定位,鼠标没办法调整所有属性,很难达到想要得效果,所以经常让人很无奈,如果不是Canvas容器,尽量码字。。。
exception92 2018-03-22
  • 打赏
  • 举报
回复
引用 3 楼 qq_41078703 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 拖动的时候设置两个单元格内容到一个容器里,并重新设置容器的rowspan或者columnspan值为2。
您好,可以给点代码参考下吗?[/quote] 代码要自己写,不知道控件怎么用就去搜用法。
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
拖动的时候设置两个单元格内容到一个容器里,并重新设置容器的rowspan或者columnspan值为2。
您好,可以给点代码参考下吗?
  • 打赏
  • 举报
回复
您好,可以给点代码参考下吗?
exception92 2018-03-22
  • 打赏
  • 举报
回复
拖动的时候设置两个单元格内容到一个容器里,并重新设置容器的rowspan或者columnspan值为2。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧