WPF中的自定义用户控件,带有矢量图形

时间:2009-03-09 15:54:21

标签: wpf wpf-controls

我已将用户控件的图形创建为矢量图形并将其导入Expression Design。到目前为止,一切都没有问题。然而,我然后将其导出为XAML并在VS中打开它。 XAML由一个画布和几个Paths组成。我在XAML中创建了一个用户控件,现在我想要一个鼠标点击事件,如果用户点击这些路径中的任何一个,就会触发该事件。我可以将相同的事件附加到每个路径,但是将路径分组会更优雅,有没有办法做到这一点?

另外,我问自己WPF是否可以使用SVG等矢量图形的标准格式。

在XML代码下面。

    <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>

1 个答案:

答案 0 :(得分:3)

我没有时间来验证这一点,但是如果你把你的事件放在画布上,并且没有为它指定背景,那么你应该只是在我的脑海中,用户点击它包含的任何路径。