WPF,能解释下这个Shape形状吗?

时间:2023-02-09 16:46:23

<Viewbox>
   <Grid>
      <Ellipse Fill="#FFF7B470" Name="ellipse" Stroke="Black"/>
      <Path Data="M366,105 L336,199" Fill="#FFF4F4F5" HorizontalAlignment="Left" Stretch="Fill" Stroke="Black" VerticalAlignment="Top" />
      <Path Data="M224,105 L295,200" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="89" Margin="28,16,0,0" Stretch="Fill" Stroke="Black" VerticalAlignment="Top" Width="77"/>
   </Grid>
</Viewbox>


WPF,能解释下这个Shape形状吗?


上面的图形,如果把第二个Path注释掉,圆形就变扁了,我使劲想了很久都想不出是什么原因,你知道是什么原因吗?

8 个解决方案

#1


 <Grid>
            <Ellipse Name ="OuterRing" Width ="75" Height ="75" Fill ="DarkGreen"/>
            <Ellipse Name ="InnerRing" Width ="60" Height ="60" Fill ="MintCream"/>

固定宽高

#2


引用 1 楼 u011901966 的回复:
 <Grid>
            <Ellipse Name ="OuterRing" Width ="75" Height ="75" Fill ="DarkGreen"/>
            <Ellipse Name ="InnerRing" Width ="60" Height ="60" Fill ="MintCream"/>

固定宽高

但是去掉Viewbox,就不会出现这种现象。为什么

#4


直线撑住了区域,圆填满了区域。

去掉直线,区域缩小,圆就扁了。

#5


引用 4 楼 caozhy 的回复:
直线撑住了区域,圆填满了区域。

去掉直线,区域缩小,圆就扁了。

那为什么扁的是那个程度,为什么不再扁点,再扁点

#6


因为另一根线撑着

#7


引用 6 楼 jshi123 的回复:
因为另一根线撑着

1:既然另一根线撑着,为什么会扁
2:另外,如果去掉外层的Viewbox就从不会出现扁的现象,那就说明是Viewbox引起的,
为什么Viewbox会引起这个现象呢?

#8


1。你沿直线对角线比划一个方框,看圆是否落在这个范围内
2。Viewbox缩放模式由Stretch决定,缺省是Uniform,就是撑满且保持比例不变。Grid中的子控件也是撑满,但不管比例全部撑满。

#1


 <Grid>
            <Ellipse Name ="OuterRing" Width ="75" Height ="75" Fill ="DarkGreen"/>
            <Ellipse Name ="InnerRing" Width ="60" Height ="60" Fill ="MintCream"/>

固定宽高

#2


引用 1 楼 u011901966 的回复:
 <Grid>
            <Ellipse Name ="OuterRing" Width ="75" Height ="75" Fill ="DarkGreen"/>
            <Ellipse Name ="InnerRing" Width ="60" Height ="60" Fill ="MintCream"/>

固定宽高

但是去掉Viewbox,就不会出现这种现象。为什么

#3


#4


直线撑住了区域,圆填满了区域。

去掉直线,区域缩小,圆就扁了。

#5


引用 4 楼 caozhy 的回复:
直线撑住了区域,圆填满了区域。

去掉直线,区域缩小,圆就扁了。

那为什么扁的是那个程度,为什么不再扁点,再扁点

#6


因为另一根线撑着

#7


引用 6 楼 jshi123 的回复:
因为另一根线撑着

1:既然另一根线撑着,为什么会扁
2:另外,如果去掉外层的Viewbox就从不会出现扁的现象,那就说明是Viewbox引起的,
为什么Viewbox会引起这个现象呢?

#8


1。你沿直线对角线比划一个方框,看圆是否落在这个范围内
2。Viewbox缩放模式由Stretch决定,缺省是Uniform,就是撑满且保持比例不变。Grid中的子控件也是撑满,但不管比例全部撑满。