gpt4 book ai didi

win-universal-app - win10 app - 圆角图像保持纵横比

转载 作者:行者123 更新时间:2023-12-02 04:49:23 25 4
gpt4 key购买 nike

仅显示图像列表的简单应用。图像列表必须保持宽高比,但必须是全窗口宽度 + 一点边距。困难的部分是使图像额外具有圆角。

想法?

我唯一的成功是使用 ImageBrush,但使用它的任何控件都不能保持纵横比。例如,这里必须设置高度和宽度。

<Rectangle RadiusX="10" RadiusY="10" Stretch="Fill" Width="100" Height="100" >
<Rectangle.Fill>
<ImageBrush ImageSource="{Binding}"></ImageBrush>
</Rectangle.Fill>
</Rectangle>

完整资源在这里:http://1drv.ms/1HlZHVe

最佳答案

我通过使用 ImageBrush 在我的图像(在我的 UWP 应用程序中)上得到了很好的圆角,但是如果你以编程方式执行此操作要小心 - 我第一次这样做时我设法使用我的内存相当差并且消耗了太多(差编码)。

我像您一样经常使用 ImageBrush,但我没有发现任何纵横比失真;确保您正在适本地设置诸如 Stretch 之类的属性 - 例如Stretch.UniformToFill

<Rectangle x:Name="rctCardFace" Margin="0"  RadiusX="20" RadiusY="20" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Rectangle.Fill>
<ImageBrush Stretch="UniformToFill"/>
</Rectangle.Fill>
</Rectangle>

或者在 C# 中

Uri path = new Uri(_ActiveStyle.BackgroundImagePath, UriKind.Absolute);
BitmapImage bitmapImage = new BitmapImage(path);

if (_AppReference.CardManager.TempImgBrush == null)
{
_AppReference.CardManager.TempImgBrush = new ImageBrush();
}

_AppReference.CardManager.TempImgBrush.ImageSource = bitmapImage;
_AppReference.CardManager.TempImgBrush.Stretch = _ActiveStyle.BackgroundImageStretch;
_AppReference.CardManager.TempImgBrush.AlignmentX = _ActiveStyle.BackgroundImageAlignX;
_AppReference.CardManager.TempImgBrush.AlignmentY = _ActiveStyle.BackgroundImageAlignY;
cfPreview.ImgB = _AppReference.CardManager.TempImgBrush;

关于win-universal-app - win10 app - 圆角图像保持纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30291681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com