【halcon】半透明和棋盘格(未完成)

背景

想实现一个这样的效果:

但是发现设置HSmartWindowControlWPF 的Background 根本就没有反应。

探索过程

 于是就换个思路,把棋盘格画到Border里面。

<Border Grid.Row="1" Grid.ColumnSpan="2" Panel.ZIndex="0" >
      <Border.Background>
          <DrawingBrush Viewport="0,0,20,20" ViewportUnits="Absolute" TileMode="Tile">
              <DrawingBrush.Drawing>
                  <GeometryDrawing Brush="Gray">
                      <GeometryDrawing.Geometry>
                          <GeometryGroup>
                              <RectangleGeometry Rect="0 0 10 10"/>
                              <RectangleGeometry Rect="10 10 10 10"/>
                          </GeometryGroup>
                      </GeometryDrawing.Geometry>
                  </GeometryDrawing>
              </DrawingBrush.Drawing>
          </DrawingBrush>
      </Border.Background>
      
  </Border>
  <halcon:HSmartWindowControlWPF Grid.Row="1" Grid.ColumnSpan="2" x:Name="hSmart" HMoveContent="{Binding CanMove}">

  </halcon:HSmartWindowControlWPF>

结果发现,要不就是躲在后面显示不出来,

要不在前面挡住了:

搞得,HSmartWindowControlWPF 没法操作了。

那只有将Border设置在后面,然后将HSmartWindowControlWPF背景设置为半透明,但是目前HSmartWindowControlWPF 的Background属性设置了根本不起作用。

于是我查资料发现,可以通过算子 SetWindowParam 设置颜色:

HOperatorSet.SetWindowParam(hSmart.HalconWindow, "background_color", "#d8d8d9");

这样是生效了但是单一的颜色,而且不透明,怎么才能透明呢?

我继续找资料,发现有个帖子是这么写的:

也就是说,颜色可以由 四对 16进制的数 设置。 前3对对应的是  红绿蓝,最后一对是 透明度(数字越小越透明)。

我用halcon做了测试,确实是有效果的:

但是,如果用于设置背景,这个透明度就没效果了:

HOperatorSet.SetWindowParam(hSmart.HalconWindow, "background_color", "#d8d8d933");

最终,还是没能实现棋盘格效果啊!先搁着吧~~~~~

猜你喜欢

转载自blog.csdn.net/songhuangong123/article/details/130428421