Я вижу очень странную проблему в окне списка WPF, где триггер MouseEnter для каждого элемента срабатывает менее точно для элементов, расположенных ниже в моем ListBox. Мой триггер MouseEnter запускает анимацию, которая увеличивает ScaleTransform каждого элемента.
Пример: у меня есть список из 10 предметов. В окне списка отображаются первые 5 элементов. Я парю над первым пунктом, и он отлично масштабируется. Я наведите курсор мыши на 2-й элемент, и мне нужно поместить мышь немного дальше в элемент управления элемента списка, чтобы увидеть эффект. Я наведите курсор мыши на третий элемент, и мне нужно поместить мышь еще дальше. К тому времени, когда я доберусь до последнего (5-го) видимого элемента в списке, я должен разместить мышь примерно в средней точке элемента управления для MouseEnter для стрельбы. Затем я прокручиваю вниз, чтобы увидеть пункты 6-10. Пункт № 6 парит просто отлично. № 7 менее точен, № 8 еще менее точен, и так далее до № 10, что очень неточно.
Таким образом, выглядит как вертикальная видимая позиция в списке, влияет на точность MouseEnter каждого элемента управления.
РЕДАКТИРОВАТЬ: Когда я помещаю этот код в чистое окно XAML, он работает нормально. Должен быть какой-то конфликт за пределами предоставленного мною кода ... Я предоставлю более подробную информацию (или ответ), если найду что-нибудь.
Есть идеи о том, что может быть причиной этого?
Вот мой ListBox XAML:
<ListBox
MaxHeight="530"
ItemsSource="{Binding Appointments}"
Background="Transparent"
>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<views:AppointmentControl DataContext="{Binding}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
А вот как выглядит мой AppointmentControl:
<UserControl Height="155" Width="215">
<UserControl.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter">
<BeginStoryboard>
<Storyboard TargetProperty="RenderTransform.ScaleX">
<DoubleAnimation To="1.2" Duration="0:0:0.050" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseLeave">
<BeginStoryboard>
<Storyboard TargetProperty="RenderTransform.ScaleX">
<DoubleAnimation To="1.0" Duration="0:0:0.050" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</UserControl.Triggers>
<UserControl.RenderTransform>
<ScaleTransform ScaleX="1.0" ScaleY="1.0"></ScaleTransform>
</UserControl.RenderTransform>
<Button
Background="#FFCAEE7D"
BorderThickness="1,1,1,3"
Padding="0"
>
<StackPanel Height="125" Width="180">
<TextBlock ... />
<TextBlock ... />
<ItemsControl>
...
</ItemsControl>
</StackPanel>
</Button>
</UserControl>