【发布时间】:2021-10-02 07:58:37
【问题描述】:
我正在使用ItemsControl,并将ItemsPanel 设置为WrapPanel,这样我就可以在多列中显示数据。现在我想为每个项目添加一个边框,就像DataGrid。
但边界总是重叠的。那么如何将每个边框的粗细设置为1.0呢?
我尝试将myBorder 的BorderThickness 设置为1 0.5 1 0.5,它可以工作。但不是最好的方法。
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border x:Name="myBorder" BorderBrush="Green" BorderThickness="1 1 1 0" Margin="12 0 0 0">
<StackPanel Margin="10" Orientation="Horizontal">
<TextBlock Width="20" Text="{Binding Name}"/>
<TextBox Width="100" Text="{Binding Value}"/>
</StackPanel>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
【问题讨论】:
-
或使用 1,1 并将边距设置为 0,-1,0,0 以便它们重叠
-
似乎不起作用。见imgur.com/a/G2gciBG
-
再试一次,但将 Margin="0,1,0,0" 添加到包裹面板
-
它有效,你能把它放在答案中吗?谢谢。
-
完成 :) 很高兴我能帮上忙
标签: wpf itemscontrol wrappanel