Событие WPF MouseDown не всплывает при нажатии левой кнопки - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть такой XAML:

<Window x:Class="TreeViewTestingWPF.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="500" Width="400">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <StackPanel Grid.Column="0" VerticalAlignment="Center" MouseDown="Control_MouseDown">
            <Button x:Name="button1" Width="80" Height="50" MouseDown="Control_MouseDown" Margin="10" >
                <Ellipse Width="30" Height="30" Fill="Red" MouseDown="Control_MouseDown" />
            </Button>
        </StackPanel>
        <TextBlock x:Name="textBlock1" Grid.Column="1" Padding="10" />
    </Grid>
</Window>

И метод "Control_MouseDown ()":

private void Control_MouseDown(object sender, MouseButtonEventArgs e)
        {
            textBlock1.Text = textBlock1.Text + "sender: " + sender.ToString() + "\n";
            textBlock1.Text = textBlock1.Text + "source: " + e.Source.ToString() + "\n\n";
        }

Все идет хорошо, когда я нажимаю на красный эллипс, используя правую кнопку или колесо, яполучить такой ожидаемый результат:

pic 1

Но когда я использую левую кнопку, событие не всплывает, и я получаю только это:

pic 2

Почему все идет по этому пути?

UPD Френчи говорит, что вероятное событие Click "съедает" MouseDown, возможно ли избежать такогоповедение?

1 Ответ

0 голосов
/ 20 сентября 2018

когда я использую PreviewMouseDown все выглядит нормально

    <StackPanel Grid.Column="0" VerticalAlignment="Center" PreviewMouseDown="Control_MouseDown">
        <Button x:Name="button1" Width="80" Height="50" PreviewMouseDown="Control_MouseDown" Margin="10" >
            <Ellipse Width="30" Height="30" Fill="Red" PreviewMouseDown="Control_MouseDown" />
        </Button>
    </StackPanel>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...