2009-03-10 14 views
4

Çalışacak herhangi bir olay tetikleyicisi bulamıyorum. Ben ne yapıyorum bir basitleştirilmiş bir örnek aşağıdadır -WPF EventTriggers - 'System.Windows.RoutedEvent' türündeki nesneye 'RoutedEvent' özniteliğinde 'MouseEnter' dizgisi dönüştürülemiyor

<Window x:Name="win" x:Class="EventTriggers.Window1" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="Window1" Height="300" Width="300"> 
<Window.Resources> 
    <ControlTemplate x:Key="buttonT"> 
     <Border Background="#333"> 
      <TextBlock Text="{Binding}" HorizontalAlignment="Stretch" Foreground="White"/> 
      <Border.Triggers> 
       <EventTrigger RoutedEvent="MouseEnter"> 

       </EventTrigger> 
      </Border.Triggers> 
     </Border> 
    </ControlTemplate> 

    <DataTemplate x:Key="lbt"> 
     <Button Template="{StaticResource buttonT}" Click="Button_Click"></Button> 
    </DataTemplate> 

</Window.Resources> 
<ListBox ItemsSource="{Binding ElementName=win,Path=col}" ItemTemplate="{StaticResource lbt}"> 
</ListBox> 

Ben UIElement tanımlanır ama hala

alıyorum beri Sınırdaki bir MouseEnter olay olduğunu biliyoruz Çeşidi itiraz özniteliği 'RoutedEvent' dize 'MouseEnter' dönüştürülemez 'System.Windows.RoutedEvent'

Uygulamayı çalıştırdığım anda

.

Herhangi bir yardım büyük ölçüde takdir edilecektir.

cevap

12

Öyle yanı Tipi sağlaması gerekir:

<EventTrigger RoutedEvent="Mouse.MouseEnter"></EventTrigger> 
+0

Bunu kullanarak duymuş '' Bağlama için bir xaml dizesinde (nokta) bir bellek sızıntısına neden olur. MouseEnter Olayı ile bir tetikleyici kullanmanın başka bir yöntemi var mı? – tcables

+4

Böyle bir şey duymadım. Dürüst olmak gerekirse biraz saçma geliyor. Bunu nerede okudun? – Razzie

5

Tam kalifiye Etkinlik adı:

<EventTrigger RoutedEvent="Border.MouseEnter"> 

</EventTrigger>