是否有任何方法可以根据WrapPanel
width
调整WPF控件中的填充,当调整窗口大小时, Windows资源管理器会执行此操作。
以下是几个例子:
答案 0 :(得分:0)
如果您使用的是ItemsControl,则可以定义ItemsContainerStyle并设置它的MaxHeight和MaxWidth值。
通过这样做,项目可以增长到有限的大小,并且会发生填充效果。
答案 1 :(得分:0)
我建议使用Binding和Converter设置Width
的{{1}}属性,以确定每个项目的正确大小。
在您的示例中,看起来您的项目大小是静态的,并且您只想分发剩余空间,因此将ItemContainerStyle
属性绑定到Width
(这是可以使用的ItemWidth的总数适合WrapPanel.Width)
这是一个使用100作为项目宽度的简单示例:
WrapPanel.Width / NumberOfItems
转换器看起来像这样(我可能在这里有语法错误,因为我没有使用IDE来验证代码):
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Width"
Value="{Binding ElementName=MyWrapPanel,
Path=ActualWidth,
Converter={StaticResource MyCustomWidthConverter},
ConverterParameter=100" />
</Style>
</ItemsControl.ItemContainerStyle>