Я узнал о перенаправленных событиях в wpf и пробовал следующий пример,
Файл - Window1.xaml
<ScrollViewer VerticalScrollBarVisibility="Auto">
<UniformGrid MouseDown="UniformGrid_MouseDown">
<Button x:Name="Button1">1</Button>
<Button x:Name="Button2">2</Button>
<Button x:Name="Button3">3</Button>
<Button x:Name="Button4">4</Button>
<Button x:Name="Button5">5</Button>
<Button x:Name="Button6">6</Button>
<Button x:Name="Button7">7</Button>
<Button x:Name="Button8">8</Button>
<Button x:Name="Button9">9</Button>
</UniformGrid>
</ScrollViewer>
Файл - Window1.xaml.cs
private void UniformGrid_MouseDown(object sender, MouseButtonEventArgs e)
{
Button aTargetButton = e.Source as Button;
if (aTargetButton != null)
{
aTargetButton.Background = Brushes.Azure;
aTargetButton.LayoutTransform = new RotateTransform(45);
if (myPreviouslyClickedButton != null)
{
myPreviouslyClickedButton.Background = Brushes.White;
myPreviouslyClickedButton.LayoutTransform = new RotateTransform(0);
}
myPreviouslyClickedButton = aTargetButton;
}
}
Когда я запускал эти фрагменты, соответствующая кнопка подвергается угловой трансформации только тогда, когда я щелкаю ее правой кнопкой мыши (даже если я подписан на MouseDown). Вы можете помочь мне с этим?
Обновление:
Кажется, этот фрагмент работает, если я заменю кнопку на эллипс. Почему кнопка не может реагировать на левые щелчки, когда эллипс может. Также события не генерируются, если я нажимаю на один и тот же эллипс более одного раза