我对WPF有些新意,希望我不是在这里要求这个世界,但我正在寻求有关如何实施以下内容的建议/指导。
我希望我的MainWindow
包含N个按钮。每个Button
对不同的数据集(即打印图像1,打印图像2,...,打印图像N)执行相同的动作。我希望我的窗口能够按如下所述自动布局按钮:
请注意按钮数量如何增加,布局会以愉快的方式自动调整。最多6个,然后它提供一个水平滚动按钮随机播放。
我觉得<Grid>
控制可能是提供这种方式的方法,但是我对于如何使自动布局调整缺乏很多粗野的前提感到迷茫。
切向,我看到WPF中数据绑定的强大功能,理想情况下按钮的信息(显示文本,图形等)会自动绑定到可观察的集合,这样当我将按钮插入集合时,UI会自动进入更新。相反,当点击每个按钮时,我想要一个通用处理程序 know 按钮5映射到我的集合中的第5个元素,其中包含所有这些附加信息(即要打印的图片的文件名) )。
这一切听起来都不错,但我再次在实施中失去了一点。
答案 0 :(得分:1)
正如Allonym所说,最可定制的方式是为此创建一个新的自定义Panel
。
恕我直言,也可以使用UniformGrid
来实现这一点,并使用绑定和转换器稍微调整一下。那是为了布局。
关于你的第二个问题,我认为使用ItemsControl
是最好的方法。您可以将新Panel
(或UniformGrid
)作为其ItemsPanel
传递给您。此外,您可以创建一个带有按钮的DataTemplate
,将其Command
属性绑定到单个命令(=泛型处理程序),并将DataContext
作为DataTemplate
的参数绑定}(=列表的当前项)。这部分比布局更容易。
有帮助吗?
安托
答案 1 :(得分:0)
我认为您必须创建一个自定义Panel类,重写MeasureOverride和ArrangeOverride以实现所需的布局。看看这个(非常简短)tutorial。