WPF:DrawingObject (Halcon)

本文翻译自Halcon中的实例(DrawingObjectsWPF)。

此实例介绍了:存在一个*.hdev格式的图像处理文件,把整个图像处理过程导出为C#代码;通过右键点击界面上的图像而画矩形,圆等。

1)创建WPF窗体文件,.Net版本选择3.5;

2)添加HalconDotNet 3.5版本的引用;

3)进入XAML文件中:

    3.1)添加Window的命名空间引用,设置窗体大小,及Loaded事件;

xmlns:my="clr-namespace:HalconDotNet;assembly=halcondotnet"
mc:Ignorable="d"
Title="MainWindow" Height="525" Width="525" Loaded="MainWindow_Loaded"

4)提供右键菜单,并为每个菜单提供Click事件:

<Window.Resources>
        <ContextMenu x:Key="cmButton">
            <MenuItem Header="rectangle1" Click="OnRectangle1_Click"/>
            <MenuItem Header="rectangle2" Click="OnRectangle2_Click"/>
            <MenuItem Header="circle" Click="OnCircle_Click"/>
            <MenuItem Header="ellipse" Click="OnEllipse_Click"/>
            <MenuItem Header="clear all objects" Click="OnClearAllObjects_Click"/>
        </ContextMenu>
</Window.Resources>

5)设置Grid为两行一列:

<Grid.RowDefinitions>
            <RowDefinition Height="30"></RowDefinition>
            <RowDefinition Height="*" Name="Contianer"></RowDefinition>
</Grid.RowDefinitions>

第一行为Label;第二行为Halcon窗体:

<Label Content="Add new drawing objects via the context menu (right mouse button)"
               Name="label1" Grid.Row="0"/>
<my:HSmartWindowControlWPF HorizontalAlignment="Left" Height="494" Margin="0" Grid.Row="1" VerticalAlignment="Top" Width="517"
               Name="hSmartWindowControlWPF1"
               MouseRightButtonDown="HSmartWindowControlWPF1_MouseRightButtonDown"
               HInitWindow="HSmartWindowControlWPF1_HInitWindow"/>

上面窗体的名字为:hSmartWindowControlWPF1,并提供右击和初始化的事件;

6)接下来就是为对应的方法提供处理过程(C#文件),其中右键的处理为:

ContextMenu cm = this.FindResource("cmButton") as ContextMenu;
cm.PlacementTarget = sender as Button;
cm.IsOpen = true;


猜你喜欢

转载自blog.csdn.net/huan_126/article/details/80223597
今日推荐