是否可以用xaml中的图像填充可用的宽度/高度?我需要像UniformToFill这样的东西,但我可以控制拉伸方向(宽度或高度)
假设我有以下代码:
<UniformGrid Columns="2" Rows="2">
<Image Source="Desert1.jpg" Stretch="Uniform"/> //
<Image Source="Desert2.jpg" Stretch="UniformToFill"/> //
<Image Source="Desert3.jpg" />
<Image Source="Desert4.jpg" />
</UniformGrid>
Run Code Online (Sandbox Code Playgroud)
编辑: 对于考试(宽度):如果图像是我想要显示的一半宽,我不关心高度,只是缩放x2图像的高度和宽度.因此图像必须适合宽度,而不关心高度.这是理想的行为,但如果不可能 - 好吧.所以你可以重新考虑问题,如果可能的话,我怎样才能在xaml中完成.
此外,所有图像可能具有不同的宽度和高度
这可能就是您正在寻找的...
TransformedBitmap
这是我在 ImageUtility 类中创建的静态方法。
public static TransformedBitmap GetScaledBitmapImageSprite(BitmapSource src, double x_scale, double y_scale)
{
return (new TransformedBitmap(src, new ScaleTransform(x_scale, y_scale)));
{
Run Code Online (Sandbox Code Playgroud)
x_scale 和 y_scale 是以下形式的双精度数:
所需宽度/原始宽度
也许与您正在寻找的有点不同,但我认为它可以让您走上正确的轨道。
您可以将 TransformedBitmap 存储在内存中并通过以下方式应用新的变换:
TransformedBitmap x = new TransformedBitmap();
x.Transform = new ScaleTransform(x,y);
Run Code Online (Sandbox Code Playgroud)