【问题标题】:Wrap image around canvas in WPF C#在 WPF C# 中围绕画布包裹图像
【发布时间】:2014-10-09 20:59:57
【问题描述】:

如何像这样在画布周围环绕图像?我能想到的明显方法是复制图像,并在相反方向上偏移图像的宽度/高度。还有另一种方法可以实现这一目标吗?

【问题讨论】:

    标签: c# wpf image graphics wpf-controls


    【解决方案1】:

    您可以用 ImageBrush 用此图像填充一个 Rectangle,并根据需要设置其 TileModeViewport 属性。

    例如:

    <Rectangle Width="128" Height="128">
        <Rectangle.Fill>
            <ImageBrush ImageSource="Images\Tile.png" TileMode="Tile"
                        ViewportUnits="Absolute" Viewport="64,64,128,128"/>
        </Rectangle.Fill>
    </Rectangle>
    

    上述 XAML 创建以下输出:

    来自此源图像:

    【讨论】:

      【解决方案2】:

      。没有其他办法。您将必须绘制所有图像。因为一个控件不会分裂。

      您可以计算然后生成图像框以显示否。基于偏移量的图像。

      【讨论】:

      • 有没有一种简单的方法来检查图像是否接触到边框?那些将被适当地复制和翻译。还是我必须复制每一张图片,即使是那些不接触边缘的图片?
      • 否,您可以检查边框图像。获取图像的大小,然后从表格的大小中减去它。这是一个简单的逻辑。在这个答案中也有战利品stackoverflow.com/questions/16303726/…
      猜你喜欢
      • 2014-10-10
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      相关资源
      最近更新 更多