我创建了一个类似于数据表的集合视图,除了所选项目突出显示外,一切正常。我尝试使用视觉状态管理器更改颜色,但仍然没有任何效果。我是为 Windows 应用程序设计的,所以我只担心它在 Windows 上的工作情况。所选项目仍在工作,只是没有突出显示。我做错了什么?
<CollectionView
x:Name="CollectionOfItems"
ItemsSource="{Binding Items}"
Header="{Binding .}"
Grid.Row="2"
Grid.Column="0"
BackgroundColor="Grey"
Margin="20,0,0,0"
WidthRequest="1750"
HorizontalOptions="Start"
VerticalOptions="Start"
SelectionMode="Single"
SelectedItem="{Binding SelectedItem}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup Name="CommonStates">
<VisualState Name="Normal"></VisualState>
<VisualState Name="Selected">
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="LightBlue"></Setter>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="m:Item">
<Grid
Margin="0"
RowDefinitions="*"
ColumnDefinitions="*,*,*,*,*">
<Frame
x:Name="SerialNumberFrame"
CornerRadius="0"
BorderColor="Black"
Grid.Column="0"
BackgroundColor="white">
<Label
Text="{Binding SerialNumber}"
HorizontalOptions="Start">
</Label>
</Frame>
<Frame
CornerRadius="0"
BorderColor="Black"
BackgroundColor="LightGrey"
Grid.Column="1">
<Label
Text="{Binding ItemType.Text}"
HorizontalOptions="Start">
</Label>
</Frame>
<Frame
CornerRadius="0"
BorderColor="Black"
BackgroundColor="white"
Grid.Column="2">
<Label
Text="{Binding HasAllComponents.Text}"
HorizontalOptions="Start">
</Label>
</Frame>
<Frame
CornerRadius="0"
BorderColor="Black"
BackgroundColor="LightGrey"
Grid.Column="3">
<Label
Text="{Binding MissionCapable.Text}"
HorizontalOptions="Start">
</Label>
</Frame>
<Frame
CornerRadius="0"
BorderColor="Black"
BackgroundColor="White"
Grid.Column="4">
<Label
Text="{Binding CheckedOut.Text}"
HorizontalOptions="Start">
</Label>
</Frame>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
我尝试过使用视觉状态管理器。我还是个新手,不太确定还能尝试什么。据我所知,所选项目应该会自动突出显示。
我终于明白了。我必须将网格背景颜色更改为白色,然后将框架的背景颜色更改为透明,以便我可以看到它们下面突出显示的颜色。我希望有一种方法可以突出显示框架的上方,但这可行。