Странное поведение в списке предложений AutoSuggestBox в UWP - PullRequest
0 голосов
/ 04 ноября 2018

Я испытываю странное поведение с AutoSuggestBox в платформе UWP, особенно в отношении элементов списка предложений.

Я хочу настроить эти элементы с эффектом наведения, при котором кнопка появляется, когда указатель входит в шаблон элемента… и я также хотел бы растянуть содержимое элемента по всей доступной ширине шаблона.

Это код для AutoSuggestBox (извините за неанглийское название свойства, но я думаю, что это не важно):

        <AutoSuggestBox MinWidth="300" Text="{x:Bind ViewModel.TestoRicerca, Mode=TwoWay}" ItemsSource="{x:Bind ViewModel.ListaRicerca, Mode=OneWay}"  QueryIcon="Find">
            <AutoSuggestBox.ItemTemplate>
                <DataTemplate x:DataType="vm:Colore">
                    <Grid PointerExited="{x:Bind OnExitPointer}" PointerEntered="{x:Bind OnEnterPointer}" HorizontalAlignment="Stretch">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="2*"/>
                            <ColumnDefinition Width="1*"/>
                        </Grid.ColumnDefinitions>
                        <Rectangle Width="30" Height="30" Margin="0,5,15,5" Fill="{x:Bind ColorBrush, Mode=OneWay}" Stroke="LightGray" StrokeThickness="1" RadiusX="2" RadiusY="2" VerticalAlignment="Center"/>
                        <StackPanel Grid.Column="1" VerticalAlignment="Center">
                            <TextBlock Text="{x:Bind Nome, Mode=OneWay}" VerticalAlignment="Center" FontWeight="Bold" TextWrapping="Wrap"/>
                            <TextBlock Text="{x:Bind ColorAsString, Mode=OneWay}" Foreground="LightGray" TextWrapping="Wrap" Margin="0,2,0,0"/>
                        </StackPanel>
                        <Button Grid.Column="2" Content="Click here" Visibility="{x:Bind IsHovered, Mode=OneWay}" VerticalAlignment="Center" Click="{x:Bind DisplayDetail}"/>
                    </Grid>
                </DataTemplate>
            </AutoSuggestBox.ItemTemplate>
        </AutoSuggestBox>

Функции OnEnterPointer и OnExitPointer, помещенные в основную сетку ItemTemplate, должны всегда вызывать появление кнопки, когда указатель находится в области сетки ... но этого не происходит!

На самом деле OnEnterPointer срабатывает ТОЛЬКО, когда указатель находится над дочерними элементами Grid!

Это показано здесь на этих фотографиях:

enter image description here

enter image description here

enter image description here

enter image description here

Как я могу заставить эффект парения срабатывать во всей области сетки?

Другое дело - растянуть содержимое элемента списка, как я уже говорил, и как вы можете видеть на рисунках ... в обычном ListView я знаю, как это сделать (поместите собственный стиль в ListView.ItemPresenterStyle с помощью правильного Setter ), но здесь это как-то не работает, может быть, потому что это не ListViewItem - стандартный элемент в этом списке предложений ...

Если у вас есть идеи и по этому вопросу, я бы хотел знать это.

Благодарю вас за внимание и терпение.

С наилучшими пожеланиями

...