仅在堆栈面板中显示完整的项目

Posted

技术标签:

【中文标题】仅在堆栈面板中显示完整的项目【英文标题】:Only display complete items in a stackpanel 【发布时间】:2012-03-31 02:17:40 【问题描述】:

我有一个由以下网格组成的滑块:

滚动查看器 Stackpanel(stackpanel 位于查看器内部)

滑块有 2 个导航按钮,用于浏览所选项目。

但是我怎样才能只显示完整的项目?目前一些按钮只显示一半,因为没有更多可用空间。在最终版本中,一次应该只显示 5 个按钮。但是如果某个事件被触发,更多的按钮将可见。

例如 1-5 是可见的。如果另一个按钮弹出只有 2-6 应该是可见的。

滑块内的按钮必须动态创建。 坚持使用堆栈面板有意义吗?因为目前按钮是静态的。

编辑:在向堆栈面板动态添加按钮时,对于已经定制的按钮,这究竟是如何工作的?我可以添加一个普通按钮就好了,但我希望添加下面已经制作的按钮。

【问题讨论】:

怀疑这在这里​​有帮助,但我注意到在 ComboBox 或 ListBox 中,如果它只显示一个 TextBlock,那么它会保持完整。但是像按钮这样更复杂的控件会被剪掉。 你能添加一些代码来展示它们是如何生成的吗? XAML 数据绑定代码也会有所帮助。 目前还没有动态生成按钮。但问题是我不确定对这种方法采取什么控制措施。这5个按钮应该在什么样的控件中显示? 您可以作弊并手动设置堆栈面板的宽度。 SizeOfButton * 5... 您必须监听窗口调整大小事件。 【参考方案1】:

我相信VirtualizingStackPanel(默认情况下启用虚拟化)只能执行基于项目的滚动(而不是基于像素的滚动)。可能值得尝试将StackPanel 换成VirtualizingStackPanel,看看是否能解决您的问题。

【讨论】:

以上是关于仅在堆栈面板中显示完整的项目的主要内容,如果未能解决你的问题,请参考以下文章

对齐堆栈面板中的项目?

Sencha Touch 2 - 旋转木马仅在构建后卡在第一个面板上

Kapt 注释处理 - 如何显示完整的堆栈跟踪

删除sencha中的项目后如何更新面板

Java 项目仅在调整窗口大小后出现

QListView 仅在视图中显示单个项目