2012-02-27 85 views
4

我对WPF有点新,希望我不是要求这里的世界,但我正在寻求关于如何执行如下内容的建议/方向。自动布局增加控件数量

我希望我的MainWindow包含N个按钮。每个Button对不同的一组数据(即,打印图片1,打印图片2,...,打印图片N)执行相同的动作。我想我的窗口自动布局按钮,如下所述:

enter image description here

注意怎样的按钮数量的增加,布局自动赏心悦目的方式来调整。最多6个,然后它提供了一个水平滚动按钮来洗牌。

我觉得像<Grid>控制可能是提供这种方式,但我迷失在如何获得自动布局调整缺乏很多暴力前兆。

切线方向,我看到WPF中数据绑定的功能,理想情况下按钮的信息(它是显示文本,图形等)将自动绑定到可观察集合,以便在将按钮插入集合时,UI自动更新。相反,当每个按钮被点击时,我想有一个通用处理器知道按钮5映射到我的收藏中具有所有这些附加信息(即要打印的图片的文件名)的第5个元素。

这一切听起来不错,但我又在实施中失去了一点。

回答

0

我想你必须创建一个自定义Panel类,覆盖MeasureOverride和ArrangeOverride来实现你想要的布局。看看这个(非常简短)tutorial

1

正如Allonym说的那样,最可定制的方法是为此创建一个新的自定义Panel。 恕我直言,它也可能使用UniformGrid来实现这一点,并通过绑定和转换器对其进行调整。这是为了布局。我想用ItemsControl是最好的方法。您可以将它作为ItemsPanel传递给您的新Panel(或UniformGrid)。此外,您可以创建一个DataTemplate,并将其Command属性绑定到单个命令(=通用处理程序),其参数为DataTemplate(=列表的当前项目)的DataContext。这部分比布局更容易。

有帮助吗?

安托万