private void Handler(object sender, MouseButtonEventArgs e)
{
// ce înseamnă aici: sender, e.Source și e.OriginalSource ?
}
- sender - elementul care gestionează evenimentul (de care gestionarul de evenimente este atașat)
- MouseButtonEventArgs moștenește de la RoutedEventArgs:
- e.Source - elementul pentru care a pornit evenimentul în arborele vizual (fie de sus în jos, fie de jos în sus)
- e.OriginalSource - elementul cel mai adânc determinat prin hit testing din interiorul celui pentru care a pornit evenimentul în arborele vizual
Dat fiind arborele vizual al sursei XAML următoare:
<StackPanel x:Name="sp" UIElement.PreviewMouseLeftButtonDown="Handler">
<Button x:Name="btn1">butonul 1</Button>
<Button x:Name="btn2">butonul 2</Button>
<Button x:Name="btn3" Padding="5">
<Rectangle Width="100" Height="100" Fill="Blue" x:Name="r"/>
</Button>
</StackPanel>
și în codul din spate:
private void Handler(object sender, MouseButtonEventArgs e)
{
// ce înseamnă aici: sender, e.Source și e.OriginalSource ?
}
Când se face clic cu butonul de maus stâng pe:
- btn1: sender va fi sp, e.Source va fi btn1, e.OriginalSource va fi btn1
- btn2: sender va fi sp, e.Source va fi btn2, e.OriginalSource va fi btn2
- btn3: sender va fi sp, e.Source va fi btn3, e.OriginalSource va fi:
- r dacă se face clic pe pătratul albastru
- btn3 dacă se face clic pe spațiul din btn3 din jurul lui r
Niciun comentariu:
Trimiteți un comentariu