我想使用CornerRadius = 5来自定义边框的以下Listbox-display属性。任何人都可以帮助我实现它而无需更改以下Xaml代码中的现有datatemplate代码:
<ListBox x:Uid="lst_value" Name="lstValues" Background="Wheat" BorderBrush="Black"
HorizontalAlignment="Left" VerticalAlignment="Top" BorderThickness="1" Height="100" Width="150"
ItemsSource="{Binding listval}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Background="{Binding}">
<TextBlock x:Name="txtblk" Foreground="Black" FontSize="10" TextAlignment="Left"
FontWeight="Black" Text="{Binding}" Background="{Binding}"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:13)
如果您希望Border
中的ListBoxItems
有另一个CornerRadius
值,则可以重新定位ListBoxItem
,其中Border
已定义,或者在ItemContainerStyle
资源
<ListBox ...>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Resources>
<Style TargetType="Border">
<Setter Property="CornerRadius" Value="5"/>
</Style>
</Style.Resources>
</Style>
</ListBox.ItemContainerStyle>
<!--...-->
</ListBox>
修改:如果您想为CornerRadius
设置ListBox
,您可以执行相同操作,但需要Resources
而不是
<ListBox ...>
<ListBox.Resources>
<Style TargetType="Border">
<Setter Property="CornerRadius" Value="10"/>
</Style>
</ListBox.Resources>
<!--...-->
</ListBox>