2012-02-14 3 views
2

Salut, je n'ai aucune idée pourquoi ce n'est pas le travail. Il semble que je ne puisse pas utiliser cet événement sur InkCanvas.Événement MouseLeftButtonDown sur InkCanvas

XAML

<Window x:Class="PolyLine.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<StackPanel > 
    <Button Name="Button1">Clear</Button> 
    <InkCanvas x:Name="MC" MouseLeftButtonDown="MC_MouseLeftButtonDown" MouseRightButtonDown="MC_MouseRightButtonDown" MouseMove="MC_MouseMove" Background="White" Height="300" Width="497" ></InkCanvas> 
</StackPanel> 

code Derrière

private void MC_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
{ 
    polylinePoints.Add(e.GetPosition(MC)); 
} 
+0

Etes-vous sûr que c'est l'élément le plus haut? Vous pouvez ajouter Canvas.ZIndex = "1000" (ou un autre nombre convenablement grand) pour le forcer à l'avant. – Nzc

Répondre

5

Apparemment, le InkCanvas gère l'événement MouseLeftButtonDown en interne pour lancer le dessin d'un trait d'encre. Vous pouvez à la place utiliser l'événement PreviewMouseLeftButtonDown, mais vous devez faire attention à ce que vous faites. Dans un InkCanvas, un utilisateur s'attend généralement à commencer à dessiner un trait lorsqu'il appuie sur le bouton gauche de la souris.