En el artículo de MSDN Understanding Routed Events and Commands In WPF, se establece¿Por qué el botón no hace clic en evento "burbujear árbol visual" a StackPanel como estados de artículo de MSDN?
un evento de burbujas (propagar) hasta el árbol visual desde el elemento de origen hasta que se ha manejado o hasta que alcance el elemento raíz.
Sin embargo, en este ejemplo, al hacer clic en el botón, no "burbuja hasta el árbol visual" para conseguir manejado por el padre StackPanel caso, es decir, al hacer clic en los botones incendios ningún caso.
¿Por qué no? ¿Qué significan entonces "burbujeando" si no es esto?
XAML:
<Window x:Class="TestClickEvents456.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">
<StackPanel x:Name="TheStackPanel"
Background="Yellow"
MouseDown="TheStackPanel_MouseDown">
<Button x:Name="TheButton"
Margin="10"
Content="Click This"/>
<TextBlock x:Name="TheMessage"
Text="Click the button or the yellow area"/>
</StackPanel>
</Window>
de código subyacente:
using System.Windows;
using System.Windows.Input;
namespace TestClickEvents456
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void TheStackPanel_MouseDown(object sender, MouseButtonEventArgs e)
{
TheMessage.Text = "StackPanel was clicked.";
}
}
}
¿Qué hace el botón con el clic de mi mouse? No tengo ningún atributo de clic en el elemento, no estoy manejando el evento click en el código subyacente, entonces, ¿cómo podemos decir que el botón está haciendo algo con los clics del mouse? –
PreviewMouseDown funcionó, gracias. –
Es cierto, pero la implementación predeterminada del botón es absorber el evento del mouse para convertirlo en un evento de clic ... incluso si no hace nada con el clic ... – Arcturus