我有问题 ImageBrush:

<Window ... >
    <Grid>
        <Grid.Background>
            <ImageBrush ImageSource="Controls\Images\notebook_paper_Line.jpg" TileMode="FlipX"
                        Viewport="0,0,1,0.09" />
        </Grid.Background>        
    </Grid>
</Window>

我想在用户调整大小窗口时重复图像。但是当前图像在用户调整窗口时会获得比例。 (请注意,图像大小很小,我使用 TileModeViewport 重复它,并在调整大小时出现问题!)。

任何XAML代码都会很棒! :)

我很抱歉英语不好!!!

有帮助吗?

解决方案

默认情况下,瓷砖的视口为0,0,1,1,并且视图是RelativetOboundingBox,这意味着整个目标大小的0,0,1,1映射(在这种情况下为网格的边界)。

因此,如果要瓷砖图像刷,则需要调整视口。如果要将视口设置为0,0,.5,.5,则应该看到图像瓷砖2 x 2(因为每个瓷砖的大小为50%x50%),或0,0,0.25, 0.1会产生4x10瓷砖等...

但是,这仍然不能阻止图像重新缩放。因此,就您而言,您可能想要的是将视口设置为图像的大小,并将视图设置为绝对而不是RelativetOboundingBox。

在下面的XAML中,我有一个24x24像素图像,因此我相应地设置了视口。这将图像反复为整个网格的全尺寸。如果调整了电网,将会出现更多的瓷砖。

<ImageBrush ImageSource="Images\book_green.png" TileMode="FlipX" 
            Viewport="0,0,24,24" ViewportUnits="Absolute" />

我希望这会有所帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top