我有一個帶有UniformGrid的ListBox作爲其ItemsPanel。基本上,我不想將項目顯示爲帶有邊框的矩形。我使用UniformGrid作爲ItemsPanel,我可以控制通過綁定顯示的行數和列數。合併包含在列表框中的項目的邊框
我正在使用ListBox的ItemContainerStyle設置每個項目的邊框。我可以指定BorderThickness,它確實出現在列表中的所有項目周圍。問題是,邊界不合併爲給予「雙邊框」對相鄰的項目相鄰的項目。我如何控制每件商品的邊框,使每件商品都有獨特的厚度,即使它們可能有相鄰的商品。
這裏是縮小代碼
<ListBox x:Name="lstGroups" ItemsSource="{Binding Groups}" Grid.Row="1" Style="{StaticResource RelayDispositionStyle}"
SelectedItem="{Binding SelectedGroup}" gs:DragDropExtension.ScrollOnDragDrop="True"
ItemContainerStyle="{StaticResource ItemContainerStyle}"
>
</ListBox>
<Style x:Key="RelayDispositionStyle" TargetType="{x:Type ListBox}" BasedOn="{StaticResource {x:Type ListBox}}">
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<UniformGrid Rows="{Binding ElementName=Racks, Path=SelectedItem.NoOfRows}"
Columns="{Binding ElementName=Racks, Path=SelectedItem.GroupsPerRow}"
HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,10,0,0">
</UniformGrid>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="RelayDispositionItemContainerStyle" TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="MidnightBlue"/>
</Style>
可能,''爲項目併爲整個列表框設置左側和頂部邊框? –
Vladimir
2013-04-29 12:17:30
隨着值=「0,0,1,1」,相鄰的單元具有正確邊界的厚度,但在頂行中的細胞失去它們的上緣,並在最左邊的列中的單元失去其左邊界! – Jatin 2013-04-29 12:22:38
嘗試換用UniformGrid邊界,這'了borderThickness = 「1,1,0,0」'。 – Vladimir 2013-04-29 12:32:37