WPF重复图像背景。

5

我正在使用 C# 和 WPF 构建我的项目。在我的应用程序中,我将一个小尺寸的图像(25x25)作为我的应用背景。我在网上找到了一些示例,当我尝试它时,我的应用程序背景看起来像是图像A。但我希望我的背景看起来像是图像B。有人知道如何让它像图像B吗?

我的 WPF 代码片段:

<Grid>
    <Grid.Background>
        <VisualBrush TileMode="Tile" Viewport="0.8,0.8,0.1,0.1"  AlignmentX="Left" AlignmentY="Top">
            <VisualBrush.Visual>
                <Image Source="/Wpf_Customer;component/bg.jpg"></Image>
            </VisualBrush.Visual>
        </VisualBrush>
    </Grid.Background>

    <RadioButton Content="Graph" Name="dsad" FontSize="15" ></RadioButton>

</Grid>

图片A:

输入图像描述

图片B:

输入图像描述

编辑后:

图片C:

输入图像描述

2个回答

9

试一试

 <ImageBrush x:Key="SimpleBitmap" ImageSource="Assets\BitmapImage.png" TileMode="FlipY"      Stretch="Uniform"AlignmentY="Top" Viewport="0,0,10,10" ViewportUnits="Absolute" />

当BitmapImage的宽度为10,高度为10时


你的解决方案让我朝着正确的方向前进,但对我进行了一些小改动: <ImageBrush AlignmentY="Top" ImageSource="/Resources/Images/pattern-notebook.png" Stretch="None" TileMode="FlipY" Viewport="0,0,10,10" ViewportUnits="Absolute" /> - psulek

2

您是否尝试将图像元素的Stretch属性设置为UniformToFill

更新:是的,我的错误...实际上,如果我正确理解了您的任务,您不需要使用VisualBrush。这应该足够:

<Grid.Background>
    <ImageBrush ImageSource="/Wpf_Customer;component/bg.jpg"/>
</Grid.Background>

嗯...我尝试了你的方法,图片被放大了而不是重复。 - Nerdynosaur
这不是你想要得到的吗? :) - andrewpey
据我所见,您的 bg.jpg 包含渐变填充。您可能知道,仅拉伸渐变而不影响背景图案是不可能的。为了获得良好的平铺效果,您的图案应该是平面的。如果您想要在图案上方实现拉伸渐变填充,您应该使用叠加组件。我也可以帮助您完成这个过程 :) - andrewpey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接