使用CornerRadius为ListBox自定义Border属性 [英] customize the Border property with CornerRadius for ListBox
问题描述
我想用CornerRadius = 5自定义边框的以下Listbox-display属性.任何人都可以在不更改以下Xaml代码中现有数据模板代码的情况下实现它:
I want to customize the following Listbox-display property of border with CornerRadius=5..can anyone help me to achieve it without changing the existing datatemplate code in the following Xaml code:
<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>
推荐答案
如果希望ListBoxItems
中的Border
具有另一个CornerRadius
值,则可以重新模板ListBoxItem
,其中ItemContainerStyle
资源
If you want the Border
within the ListBoxItems
to have another CornerRadius
value, you can either re-template ListBoxItem
where the Border
is defined, or set it implicitly in the ItemContainerStyle
Resources
<ListBox ...>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Resources>
<Style TargetType="Border">
<Setter Property="CornerRadius" Value="5"/>
</Style>
</Style.Resources>
</Style>
</ListBox.ItemContainerStyle>
<!--...-->
</ListBox>
如果要为ListBox
设置CornerRadius
,则可以执行相同的操作,但可以在Resources
中进行
If you want to set CornerRadius
for the ListBox
, you can do the same but in Resources
instead
<ListBox ...>
<ListBox.Resources>
<Style TargetType="Border">
<Setter Property="CornerRadius" Value="10"/>
</Style>
</ListBox.Resources>
<!--...-->
</ListBox>
这篇关于使用CornerRadius为ListBox自定义Border属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!