首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >VSTO编写的C#为啥无法删除边框?设置边框线框为啥不能生效?

VSTO编写的C#为啥无法删除边框?设置边框线框为啥不能生效?

提问于 2023-09-16 12:56:39
回答 0关注 0查看 86

最近闲来无事搞搞代码玩,编一个Word的VSTO。代码的功能是批量的修改word里面的图片的边框,有删除边框的功能,有修改边框的功能。结果碰到了很费解,找不到答案也搞不懂的问题!

平台:VS2022,Word2019,用的C#,以前都用VB,心血来潮改用C#,之前也从来没玩过C#。

问题:1、无法删除边框,甚至应用到无边框的图片,反而会加上边框。

按微软的MSDN,应用Borders.Enable属性(读写)设置为Fasle,就可以删除边框了。对象都是InlineShape中的Picture类型的。

CurrentShape.Borders.Enable = 0;

上述代码无用,然后又按照网上可能的方法,设置外框集合的线型为无。

CurrentShape.Borders.OutsideLineStyle = WdLineStyle.wdLineStyleNone;

也没有用,后面还试过把线框集合里面的上下左右边框对象分别设置线型为无,也不行。

调试发现,原因是赋值无效,走过赋值wdLineStyleNone的语句后,值依然是wdLineStyleSingle,这些属性是读写属性的啊,为啥不能赋值?如果我设置了一个粗边框,应用删除,粗边框是会被删除,但是就改成这个单线的灰色边框了。

表现如下:

左:应用删除线框后,右:无线框状态
左:应用删除线框后,右:无线框状态

问题:2,如果将线型设置为双实线的时候,再应用1.0线宽、4.5线宽、6.0线宽的时候会出问题。

CurrentShape.Borders.OutsideLineStyle=WdLineStyle.wdLineStyleDouble;

CurrentShape.Borders.OutsideLineWidth = WdLineWidth.wdLineWidth100pt;

程序提示参数超出范围。我当时以为是太小了不适合双线,结果试了一下,0.75线宽,0.5甚至0.25都不会报错,而且看起来执行时正确。但是1.5,2.25,3.0线宽都是对的。

另外,试用了其他的线型,比如那种细粗复核的线型,设置从0.25到6.0都没问题。就费解为啥双实线就右问题。另外,从word里设置是不会出问题的。

有各位涉及到这个问题的吗?是某些设置没注意到,还是Wrod提供的库本身的问题?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档