我在WPF列表框中看到一個非常奇怪的問題,其中每個項目的MouseEnter觸發器對列表框中的項目進一步下降的準確性會降低。我的MouseEnter觸發器會觸發一個增加每個項目的ScaleTransform的動畫。MouseEnter觸發器在ListBox中的項目上觸發不準確
例如:我有一個10個項目的列表框。列表框顯示前5個項目。我將鼠標懸停在第一個項目上,它可以很好地縮放。我將鼠標懸停在第二項上,並且必須將鼠標放在列表項控件內部才能看到效果。我將鼠標懸停在第三個項目上,並且必須將鼠標放在更遠的位置。當我到達列表中最後一個(第5個)可見項目時,我必須將鼠標放置在控件的中點MouseEnter發射。然後,我向下滾動到底部看項目6-10。物品#6徘徊好。 #7不太準確,#8更不準確,等到#10這是非常不準確的。
因此看起來像垂直可見在列表框中的位置影響每個控件的MouseEnter準確性。
編輯:當我把這個代碼,它工作正常乾淨的XAML窗口。它必須是我提供的代碼之外的一些衝突......如果我找到了某些東西,我會提供更多的細節(或答案)。
關於可能導致此問題的任何想法?
這裏是我的列表框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>
因此,如果您有5個可見項目,並且您從底部項目開始並向上移動,會發生什麼? – 2011-04-06 20:51:59
你是什麼意思「從底部項目開始」?首先將鼠標移到底部項目上,然後按照我的方式操作到第一個項目?如果是這樣,那麼我仍然有同樣的問題。 – kindohm 2011-04-06 21:17:41