#683 – MouseUp Can Happen in Different Control from MouseDown

You can press a mouse button down while the mouse pointer is located in one control, move the mouse, and then release the mouse button with the mouse pointer located in a different control.  When you do this, the first control will receive the MouseDown event and the second control will receive the MouseUp event.

    <StackPanel>
        <Label Content="Sistine" Background="ForestGreen" Padding="10,20"
               MouseDown="Label_MouseDown" MouseUp="Label_MouseUp"/>
        <Label Content="Buonarroti" Background="Peru" Padding="10,20"
               MouseDown="Label_MouseDown" MouseUp="Label_MouseUp"/>
    </StackPanel>

 

        private void Label_MouseDown(object sender, MouseButtonEventArgs e)
        {
            Label l = sender as Label;
            Console.WriteLine(string.Format("MouseDown on {0}", l.Content));
        }

        private void Label_MouseUp(object sender, MouseButtonEventArgs e)
        {
            Label l = sender as Label;
            Console.WriteLine(string.Format("MouseUp on {0}", l.Content));
        }

Advertisement