I will start with the second point.
First, internal logic StrokeDashArrayis explained here . The important point is that the dash stroke array is not expressed in pixels, it depends on the thickness of the stroke to get the final pixel value for each number in the array.
So, for the mathematical part, let's define some variables:
- S is the visible part of the stroke (the same as in the link).
- G is the invisible part of the stroke (the same as in the link).
- r - . .
- n - S + G, . .
- T -
- p - pi (3.14...)
, :
2*p*r = n*(T*S+T*G)
S+G = 2pr/nT
, , , S = 1, , n = 6, 30 T = 30. G :
G = 2pr/180 - 1
r blend, Width Height - . , , , 102,55. :
StrokeDashArray="1,2.58"
: . - . , "" , .
, . , , ViewBox, .
, - ( Silverlight , ActualWidth\ActualHeight) - Border, . , .:)