【问题标题】:Resize polygon in to fill in Canvas调整多边形的大小以填充画布
【发布时间】:2014-03-04 14:05:32
【问题描述】:

如何调整放置在 Canvas 中的 Polygon 的大小以填充该画布?

我不想更改多边形点的值,我只是希望它显示在画布内,以防多边形坐标太大、太小或超出屏幕。

【问题讨论】:

    标签: c# wpf resize polygon


    【解决方案1】:

    你有机会用网格替换画布吗?如果是这样,只需设置多边形的Stretch 属性,例如Uniform 保持纵横比:

      <Grid Width="297" Height="159">
        <Polygon Points="10,110 110,110 110,10" Fill="Blue" Stretch="Uniform" />
      </Grid>
    

    【讨论】:

    • 它适用于具有少量点的多边形,不幸的是对于大量(在我的情况下约为 250.000)它不起作用。但我想这不是你的答案的错。那我应该把它标记为答案吗?
    • 随你喜欢。我同意有这么多点多边形不是正确的方法。一种方法通常是在不丢失信息(形状)的情况下减少点数。点跳跃算法取决于数据。前段时间我也遇到过类似的问题,结果发现,代价高昂的跳点算法仍然比绘制所有(不必要的)点要快。
    【解决方案2】:

    最近遇到了这个问题,并制定了一个可靠的解决方案:

    <Canvas x:Name="CanvasName">
        <Polygon Points="{Binding Path=PointCollectionName}" Stretch="Fill" Fill="Black"
            Width={Binding ElementName=CanvasName, Path=ActualWidth}"
            Height={Binding ElementName=CanvasName, Path=AcutalHeight}"/>
    </Canvas> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多