下面我有一个矩形:
onWebView().perform(script("return document.getElementById(\"submit-try-sample\").click()"));
onWebView().withElement(findElement(Locator.ID, "submit-try-sample")).perform(webClick());
onWebView().withElement(findElement(Locator.XPATH, "//button//span[contains(text(),'do this')]")).perform(webClick());
在上面的定义中,我观察到要查看<Rectangle ClipToBounds="False" Grid.Row="1"
StrokeThickness="6"
StrokeDashArray=".5"
Height="2"
Stroke="Green" />
的效果,我必须在StrokeDashArray=".5"
之间保持StrokeThickness
。如果我提供任何6 to 9
或below 6
,我会看到一条直线。
我在这里有两个问题:
above 9
效果不起作用StrokeDashArray
和below 6
。为什么?above 9
之间存在关联。有人可以解释一下吗?当我阅读关于笔划粗细的MSDN定义时,它说:
获取或设置Shape轮廓的宽度
我不明白这一点。
提前致谢。
答案 0 :(得分:0)
笔划虚线阵列不以像素表示,它取决于笔划粗细,以获取数组中每个数字的最终像素值。
如果您想了解其背后的所有细节,请查看here。
一般来说:StrokeThickness
告诉WPF有多厚
该行应以像素为单位。
StrokeDashArray
是一个允许我们定义a中的破折号和缺口的属性
线。数组中的值在短划线的长度和。之间交替
差距的长度。这些值也与行程的厚度有关,因此a
值1.0表示相应的破折号或间隙的长度等于
中风的宽度。
在你的代码中,你告诉WPF绘制一个破折号,该破折号是笔划宽度的0.5倍,但你没有给出间隙的长度,例如:
StrokeDashArray=".5 1"
此示例表示间隙等于宽度的1倍。 Buttom line你需要定义差距以获得破折号之间的想要的差距。