C# 我可以在运行时决定网格中矩形的数量吗?
我基本上是在享受这一切。问题是,我希望屏幕上有一定数量的矩形,这取决于屏幕大小/分辨率。现在,关于这个问题的第一条评论说,“在基于XAML的技术中,在过程代码中创建UI元素是不受鼓励的、繁琐的、可能是个坏主意,而且完全是错误的” 那么,有没有其他方法可以实现我的目标呢 我能想到的一种方法是至少有3x3个矩形,但为6x3添加UI代码,并使最后3行的可见性折叠。在应用程序加载中,我可以找出是否可以容纳更多行,并有选择地使它们可见。我还是想知道是否有更干净的方法C# 我可以在运行时决定网格中矩形的数量吗?,c#,user-interface,grid,windows-store-apps,rectangles,C#,User Interface,Grid,Windows Store Apps,Rectangles,我基本上是在享受这一切。问题是,我希望屏幕上有一定数量的矩形,这取决于屏幕大小/分辨率。现在,关于这个问题的第一条评论说,“在基于XAML的技术中,在过程代码中创建UI元素是不受鼓励的、繁琐的、可能是个坏主意,而且完全是错误的” 那么,有没有其他方法可以实现我的目标呢 我能想到的一种方法是至少有3x3个矩形,但为6x3添加UI代码,并使最后3行的可见性折叠。在应用程序加载中,我可以找出是否可以容纳更多行,并有选择地使它们可见。我还是想知道是否有更干净的方法 我不会在这里粘贴我的代码,因为它与链接
我不会在这里粘贴我的代码,因为它与链接的问题非常相似,但如果有人问我,我会粘贴,这有助于澄清一些事情。我理解一种普遍的看法,即XAML应用程序应该在XAML中声明尽可能多的UI。但我也相信对事情过于教条是有可能的。如果确实存在这样一种场景,即在设计时选择的UI元素的布局在运行时之前是未知的,那么为什么不在运行时基于该信息填充UI呢 除非有一些明确的、令人信服的论据详细说明为什么运行时创建UI元素实际上是不好的,否则我将在适当的时候继续这样做。我很乐意提前设计尽可能多的UI,但如果有部分依赖于仅在运行时已知的信息,我将编写代码来实现这一点 一个人试图将一个特定的设计目标转变成一些限制性的、规定性的教条,最终可能会遇到很多非常糟糕的代码和维护麻烦
我继续并发布了您链接到的问题的答案。我不知道这是否是你真正需要的东西,但如果是的话,你可以看看那里。在我看来,这里的主要问题是“在运行时配置我的UI真的那么错误吗?”我的答案是,正如您所看到的,“不,不一定”。谢谢您分享您的想法。你的解决方案非常有效。对于后代来说,如果你想适应矩形,如果你想像我一样占用所有可用空间,你可以将水平对齐和垂直对齐设置为拉伸,或者手动设置矩形的宽度和高度。-1。正如OP在上面的评论中所说的,他所需要的只是在XAML中设置几个属性。您所说的解决方案不符合WPF公认的、众所周知的最佳实践。此外,由于您没有显示任何代码,您的帖子可能被视为无用的咆哮,而不是对OP问题的正确回答。@HighCore:欢迎您发表意见。但是这里没有代码,因为它没有意义(就像在OP中没有在他的问题中包含代码一样)。你完全误解了OP的评论…设置这些属性并不能解决他的问题,它只是在实际答案的上下文中格式化单个网格单元的一种方法。在你挥舞下选票之前,你应该仔细阅读,尤其是当OP自己指出答案是有用的时候。@PeterDuniho在告诉人们他们需要WPF中的一堆可怕的过程代码来创建基于动态项的UI之前,你应该先了解一下
ItemsControl
是什么。@HighCore:我相信这个表达式是“提出或关闭”。