#wpf #xaml #styling #listviewitem
#wpf #xaml #оформление #listviewitem
Вопрос:
У меня есть стиль, который я применяю к ItemContainerStyle Listview. Он помещает строку в нижнюю часть строки и задает высоту строки.
Однако по какой-то причине кажется, что каждая строка имеет закругленные углы (как видно на прилагаемом снимке). Когда я смотрю на стиль в Blend — там нет закругленных углов.
Как я могу избавиться от закругленных углов?
<Style TargetType="ListViewItem" x:Key="RowStyle">
<Setter Property="BorderThickness" Value="0,0,0,1" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonPressedColor}" />
<Setter Property="Height" Value="40" />
<Setter Property="Background" Value="#FFF9EDED"/>
</Style>
<ListView x:Name="lvw_FileList" Background="{DynamicResource Watermark}" ItemContainerStyle="{StaticResource RowStyle}" BorderBrush="{DynamicResource GreyBorderColor}" BorderThickness="3" Margin="0" ItemsSource="{Binding Mode=OneWay}" d:DataContext="{d:DesignData /SampleData/SampleListItems.xaml}" Foreground="{DynamicResource TextColor}">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridView.ColumnHeaderContainerStyle>
<Style>
<Setter Property="UIElement.Visibility" Value="Collapsed" />
</Style>
</GridView.ColumnHeaderContainerStyle>
<GridViewColumn Header="Picture" CellTemplate="{DynamicResource PictureCell}" />
<GridViewColumn Header="Name" CellTemplate="{DynamicResource CompanyNameCell}" />
<GridViewColumn Header="Action" CellTemplate="{DynamicResource ActionCell}" />
<!--<GridViewColumn Header="Delete" Width="50"/>-->
</GridView>
</ListView.View>
</ListView>
Ответ №1:
Подтверждение округления происходит из-за этой строки . вы присвоили толщину 1 нижней части
<Setter Property="BorderThickness" Value="0,0,0,1" />
измените это на
<Setter Property="BorderThickness" Value="0,0,0,0" />
Комментарии:
1. Я вижу — итак, базовый шаблон имеет объект border с установленным радиусом угла — и как только я создаю border, он наследует это свойство. Чтобы это исправить, мне нужно было бы создать шаблон для ListItemView?
2. По умолчанию, если вы можете проверить, что стиль ListviewItemStyle по умолчанию в controltemplate Contentpresenter заключен в рамку, а толщина наследуется с помощью Templatebinding
3. если вам нужен пользовательский стиль строки, вы можете создать свой собственный стиль ListViewItem
Ответ №2:
Я думаю, что это не имеет ничего общего с вашим стилем ListView, но со стилем вашего GridViewColumn внутри ListView. Потому что этот стиль отсутствует.
Не могли бы вы опубликовать свой образец XML-данных?