这个集合视图是好的,但是在项目选择之后。有可见的橙子背景。我应该如何删除它?
<CollectionView
x:Name="MyCollectionView"
ItemsSource="{Binding Groups}"
SelectionMode="Single"
SelectedItem="{Binding SelectedGroup}"
ItemsLayout="HorizontalList"
Margin="10,10,0,10">
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="models:PlcGroup">
<Frame Margin="0,0,5,0" Padding="10,5" HasShadow="False" CornerRadius="10">
<VisualStateManager.VisualStateGroups>
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" >
<VisualState.Setters>
<Setter Property="Style" Value="{DynamicResource unselectedGroup}" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Selected">
<VisualState.Setters>
<Setter Property="Style" Value="{StaticResource selectedGroup}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</VisualStateManager.VisualStateGroups>
<Frame.GestureRecognizers>
<TapGestureRecognizer Command="{Binding SelectItem, Source={RelativeSource AncestorType={x:Type viewModels:MainViewModel}}}"
CommandParameter="{Binding .}"/>
</Frame.GestureRecognizers>
<Label Text="{Binding Name}"/>
</Frame>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
将样式更改为DataTemplate的所有后代确实很痛苦,但我只想将颜色设置为框架背景。在理想情况下,我也想更改标签的TextColor,但我放弃了。
似乎问这个问题我需要输入更多的文本,但其实没有太多要问的。
1条答案
按热度按时间zysjyyx41#
这可能是由于CollectionView选定项的默认颜色。我在这里给出了一个变通方法。
您可以将Frame Package 在容器(如StackLayout)中,并将BackgroundColor属性设置为white。将
x:Name="myFrame"
设置为我们将在VisualStateManager中使用的Frame。然后VisualStateGroup应附加到StackLayout,因为它是外部容器:
有关详细信息,请参阅Visual states。
希望对你有用。