WPF:DrawingObject (Halcon)

本文详细介绍了如何在WPF环境中利用Halcon的DrawingObjects进行图像处理。通过创建WPF窗体,引用HalconDotNet库,设置窗体事件,以及添加右键菜单功能,实现了在图像上绘制矩形和圆的功能。具体步骤包括选择.NET 3.5版本,设置窗体属性,处理右键菜单事件,以及在Grid中布局控件。
摘要由CSDN通过智能技术生成

本文翻译自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;


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值