2009-03-09 16 views
0

Ich habe die Grafiken für das Benutzersteuerelement als Vektorgrafik erstellt und in Expression Design importiert. Bisher hat alles ohne Probleme funktioniert. Allerdings habe ich es dann als XAML exportiert und in VS geöffnet. Der XAML besteht aus einer Leinwand und mehreren Pfaden. Ich habe ein Benutzersteuerelement in XAML erstellt, jetzt möchte ich ein Mausklick-Ereignis, das ausgelöst wird, wenn der Benutzer auf einen dieser Pfade klickt. Ich könnte das gleiche Ereignis an jeden Pfad anhängen, aber es wäre eleganter, die Pfade zu gruppieren, gibt es eine Möglichkeit, dies zu tun?Benutzerdefinierte Benutzersteuerelemente in WPF mit Vektorgrafiken

Auch ich fragte mich, ob WPF ein Standardformat für Vektorgrafiken wie SVG verwenden kann.

Unter dem XML-Code.

<Canvas x:Name="Arrow" Width="40" Height="400" Canvas.Left="0" Canvas.Top="0"> 
    <Path Width="11.432" Height="361.1" Canvas.Left="12.861" Canvas.Top="-2.666" StrokeThickness="12" StrokeLineJoin="Round" Stroke="#FFFF2800" Data="F1 M 310,130.967L 310,480.067"/> 
    <Path Width="6.75" Height="355.767" Canvas.Left="15.25" Canvas.Top="0" Stretch="Fill" StrokeThickness="6.66667" StrokeLineJoin="Round" Stroke="#FFFFFFFF" Data="F1 M 310,130.967L 310,480.067"/> 
    <Path Width="22.725" Height="30.4" Canvas.Left="6.363" Canvas.Top="351.1" Stretch="Fill" StrokeThickness="2.66667" StrokeMiterLimit="2.75" Stroke="#FFFF2800" Fill="#FFFF2800" Data="F1 M 310,507.8L 320.4,480.067L 299.6,480.067"/> 
    <Path Width="29.97" Height="2.667" Canvas.Left="4.107" Canvas.Top="2" Stretch="Fill" StrokeThickness="2.66667" StrokeMiterLimit="2.75" Stroke="#FFFF2800" Data="F1 M 296.133,130.967L 323.867,130.967"/> 
    </Canvas> 
+0

Nebenbei, Sie können nicht SVG verwenden, aber es gibt ein Export-Werkzeug für Illustrator, das Pfad-basierte Grafiken etwas einfacher zu erstellen macht :-) –

Antwort

3

ich keine Zeit, dies zu überprüfen, erhalten haben, aber aus der Spitze von meinem Kopf, wenn Sie Ihre Veranstaltung auf der Leinwand setzen, und geben keinen Hintergrund für sie, dann sollten Sie nur bekommen die Klicken Sie auf Ereignis, wenn der Benutzer auf einen der darin enthaltenen Pfade klickt.

+0

ahh .. lass mich das überprüfen .. – Nils

+0

Ich glaube nicht Es gibt ein "Klick" -Ereignis auf Canvas (könnte falsch sein), aber Sie können sicherlich die linke Maustaste gedrückt halten, um einen "Klick" ganz einfach zu emulieren. –

+0

ja, danke für den Hinweis :) Das Ereignis heißt MouseLeftButtonDown. – Nils

Verwandte Themen