繁体   English   中英

为什么这条多段线不适合 WPF 中的 ViewBox?

[英]Why does this polyline not fit inside the ViewBox in WPF?

我想要实现的是将Polyline放入Viewbox 我尝试了Stretch选项,但它似乎不适用于负值。 有人可以指导如何将内容放入ViewBox吗?

以下是我的示例代码:

<Viewbox Stretch="Uniform">
    <Grid>
        <Polyline Margin="10" Fill="Tan" HorizontalAlignment="Center" 
                  VerticalAlignment="Center" Points="0,0 14,0 14,-38" 
                  StrokeThickness="1" Stroke="Black" 
                  RenderTransformOrigin="0.5,0.5">
            <Polyline.RenderTransform>
                <TransformGroup>
                    <RotateTransform Angle="180"/>
                    <ScaleTransform>
                        <ScaleTransform.ScaleX>-1</ScaleTransform.ScaleX>
                    </ScaleTransform>
                </TransformGroup>
            </Polyline.RenderTransform>
        </Polyline>
    </Grid>    
</Viewbox>

边界超出了Viewbox ,因此无法让它“适合”视图。

您不应在 Viewbox 中设置元素的 RenderTransform。

您可以使用带有折线几何图形的路径代替折线,您可以在其中设置路径Data Geometry对象的Transform属性:

<Viewbox Stretch="Uniform">
    <Path Margin="10" Fill="Tan" StrokeThickness="1" Stroke="Black"
          HorizontalAlignment="Center" VerticalAlignment="Center">
        <Path.Data>
            <PathGeometry Figures="M0,0 L14,0 14,-38">
                <PathGeometry.Transform>
                    <TransformGroup>
                        <RotateTransform Angle="180"/>
                        <ScaleTransform>
                            <ScaleTransform.ScaleX>-1</ScaleTransform.ScaleX>
                        </ScaleTransform>
                    </TransformGroup>
                </PathGeometry.Transform>
            </PathGeometry>
        </Path.Data>
    </Path>
</Viewbox>

编辑:另一种可能是设置LayoutTransform而不是RenderTransform 您还必须设置折线的Stretch属性:

<Viewbox>
    <Polyline Margin="10" Fill="Tan" StrokeThickness="1" Stroke="Black"
              Points="0,0 14,0 14,-38" Stretch="Uniform">
        <Polyline.LayoutTransform>
            <TransformGroup>
                <RotateTransform Angle="180"/>
                <ScaleTransform>
                    <ScaleTransform.ScaleX>-1</ScaleTransform.ScaleX>
                </ScaleTransform>
            </TransformGroup>
        </Polyline.LayoutTransform>
    </Polyline>
</Viewbox>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM