Пользовательские элементы управления в WPF с векторной графикой - PullRequest
0 голосов
/ 09 марта 2009

Я создал графику для пользовательского элемента управления в виде векторной графики и импортировал ее в Expression Design. Пока что все работало без проблем. Однако затем я экспортировал его как XAML и открыл его в VS. XAML состоит из холста и нескольких путей. Я создал пользовательский элемент управления в 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 Ответ

3 голосов
/ 09 марта 2009

У меня нет времени, чтобы проверить это, но, если исходить из того, что вы поместили свое событие на холст и не указали для него фон, вы должны получить событие click только тогда, когда пользователь нажимает на любой из содержащихся в нем путей.

...