2013-07-24 37 views
11

Muszę robić coś głupiego tutaj, ale nie mogę wydać zdarzenia MouseDown, gdy kliknę na UserControl. Doprowadza mnie do szału.Impulsy WPF Mouse Down Event nie będą się uruchamiać

Oto XAML dla UserControl:

<UserControl x:Name="cusTextBox" x:Class="StoryboardTool.CustomTextBox" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300" MouseDown="cusTextBoxControl_MouseDown"> 
    <Grid> 
     <RichTextBox x:Name="richTextBox"> 
      <RichTextBox.ContextMenu> 
       <ContextMenu> 
        <MenuItem x:Name="ContextMenuBringForward" Header="BringForward" Click="ContextMenuBringForward_Click"/> 
        <MenuItem x:Name="ContextMenuSendBackward" Header="SendBackward" Click="ContextMenuSendBackward_Click"/> 
       </ContextMenu> 
      </RichTextBox.ContextMenu> 
     </RichTextBox> 
    </Grid> 
</UserControl> 

Code Behind:

private void cusTextBoxControl_MouseDown(object sender, MouseButtonEventArgs e) 
     { 
      selected = (CustomTextBox)sender; 
     } 

Dlaczego przyzwyczajenie ten ogień, gdy jestem kliknięcie kontroli użytkownika?

Odpowiedz

32

You MouseDown jest obsługiwane przez RichTextBox. Zamiast tego użyj funkcji PreviewMouseDown.

+0

+1 Zaoszczędził mi to trochę czasu! Dzięki Bill! – gleng

+0

Miał ten sam problem. Nigdy bym nie zgadł ... – GravityWell