WPF 列表框布局:多列
我有一个包含复选框的列表框(WPF)。我正在配置屏幕中使用。原理图示例如下:
现在我想添加一个“Test 5”复选框。我垂直空间有限,所以希望它出现在水平方向,如下图:
ListBox 可以吗布局是否需要修改,以便复选框会这样排列?
I have a ListBox (WPF) that contains CheckBoxes. I'm using is in a configuration screen. Schematic example below:
Now I want to add a "Test 5" CheckBox. I have limited vertical space, so I want it to appear in the horizontal direction, as shown below:
Can the ListBox layout be modified so the CheckBoxes will be arranged like this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
或者像这样简单:
or as simple as this:
我遇到了类似的问题,eibhrum 的回答给了我一些想法。我使用了以下代码,我认为这也是您所需要的。我使用 UniformGrid 而不是 WrapPanel。
I encountered a similar problem and eibhrum's answer gave me some idea. I used the following code and I think this also what you need. I used UniformGrid instead of WrapPanel.
我知道这是一篇较旧的帖子,但当我试图在这里解决同样的问题时,我偶然发现了一种相当简单的方法:http://social.technet.microsoft.com/wiki/contents/articles/19395.multiple-columns-in-wpf -listbox.aspx
只需添加绑定数据源(或根据需要添加项目)。
I know this is an older post, but I stumbled across a fairly simple way to do this while I was trying to solve the same problem here: http://social.technet.microsoft.com/wiki/contents/articles/19395.multiple-columns-in-wpf-listbox.aspx
Just add your binding data source (or add items as needed).
具有多列的 ListBox,ListBoxItem 方向为垂直。
ListBox 有固定高度和自动宽度。添加ListBoxItem时,ListBox会自动增加宽度。
具有多列的 ListBox,ListBoxItem 方向为水平。 ListBox 有固定宽度和自动高度。添加ListBoxItem时,ListBox会自动增加高度。
ListBox with multi column and ListBoxItem Orientation is Vertical.
ListBox has fix Height and Auto Width. When add ListBoxItem, ListBox will Auto increase Width.
ListBox with multi column and ListBoxItem Orientation is Horizontal. ListBox has fix Width and Auto Height. When add ListBoxItem, ListBox will Auto increase Height.
如果您需要在多个区域(在我的例子中是多个窗口)之间流动行,您可以使用自定义面板实现。
用法示例:
结果:
完整的演示实现是 可在 Github 上找到,但关键部分如下。
SharedLayoutCoordinator.cs:
SharedLayoutStackPanel.cs:
If you need to flow rows between multiple regions (multiple windows, in my case), you can use a custom panel implementation.
Example usage:
Results in:
Full demo implementation is available on Github, but the key bits are below.
SharedLayoutCoordinator.cs:
SharedLayoutStackPanel.cs:
我的解决方案:使用垂直方向的 WrapPanel。如果将 WrapPanel 的高度调整为 ListBox 的高度,则可以正常工作。
My Solution : Using a WrapPanel with a vertical Orientation. Work fine if you adjust the height of the WrapPanel to the Height of the ListBox.