3

I have a ListView in a dotnet MAUI Windows app with a custom viewcell for the item template. I'd like to control how the focused item is styled. At the moment it becomes grey and has a little blue line on the left edge.

This is the code I am currently using:

<ListView
    x:Name="ReportList"
    ItemsSource="{Binding Resources}"
    SelectedItem="{Binding SelectedResource}"
    SeparatorVisibility="None">

    <ListView.ItemTemplate>
        <DataTemplate x:DataType="vm:ReportItemViewModel">
            <ViewCell>
                <Grid ColumnDefinitions="*, *, *">
                    <Label Grid.Column="0" Text="{Binding Name}" />
                    <Label Grid.Column="1" Text="{Binding Size}" />
                    <Label Grid.Column="2" Text="{Binding Status}" />
                </Grid>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

On the focused element I'd like to remove the blue line and change the background colour.

I've found some promising looking properties and styles while browsing through the default styles in a PR for the MAUI source code.

These properties include:

  • FocusVisualMargin
  • FocusVisualPrimaryBrush
  • FocusVisualPrimaryThickness
  • FocusVisualSecondaryBrush

I'm not sure how to use them in my code above, or even if these are available in the current release. Can I set these properties, is this the way to go to get complete control over how the focused item is styled, or is there another way?

Richard Garside
  • 87,839
  • 11
  • 80
  • 93
  • You may consider using Visual State for implementation. For more details, please refer to the website: " https://learn.microsoft.com/en-us/dotnet/maui/user-interface/visual-states “. – Hongxin Sui-MSFT Sep 22 '22 at 06:52

0 Answers0