Я испытываю странное поведение с 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!
Это показано здесь на этих фотографиях:
Как я могу заставить эффект парения срабатывать во всей области сетки?
Другое дело - растянуть содержимое элемента списка, как я уже говорил, и как вы можете видеть на рисунках ... в обычном ListView я знаю, как это сделать (поместите собственный стиль в ListView.ItemPresenterStyle с помощью правильного Setter ), но здесь это как-то не работает, может быть, потому что это не ListViewItem - стандартный элемент в этом списке предложений ...
Если у вас есть идеи и по этому вопросу, я бы хотел знать это.
Благодарю вас за внимание и терпение.
С наилучшими пожеланиями