wpf - MaxWidth 和 MaxHeight 将较小的图像扩展到它们的实际值之外
问题描述
当使用Image
控件在 wpf 上加载图像时,Canvas
一切正常。但是某些图像很大并且在表面上会爆炸MaxHeight
,所以我设置和以在最大约束内MaxWidth
渲染这些图像。
然后大图像加载工作,但副作用是小于最大尺寸和宽度的图像然后被拉伸到最大尺寸。这是由于Stretch
被设置的值不是None
.
<Image Source="{Binding Source}"
Stretch="UniformToFill"
MaxHeight="200"
MaxWidth="400"/>
左图没有设置最大值。右图设置了最大值
问题
很明显,我有相互竞争的优先级,一方面稍后(在初始加载之后)图像可以调整大小,并且调整大小需要Stretch
设置,因此它会扩展到该调整大小。所讨论的初始竞争需求是按原样加载图像,除非它们超过最大尺寸
我如何根据需要实现两者;加载时仅在大于最大值时才将其大小调整为最大值?然后在图像加载后它可以Stretch
设置为UniformToFill
?
尝试的东西
我尝试Stretch
在加载后设置,但它似乎具有相同的效果。我猜它不是在图像加载后触发的,但不幸的是在控件加载时触发;这发生在图像加载之前。
private void LoadedImage(object sender, RoutedEventArgs e)
{
if (sender is Image image)
image.Stretch = Stretch.UniformToFill;
}
解决方案
推荐阅读
- javascript - 当我使用旧的刷新令牌时,为什么刷新端点会返回新的令牌?
- amazon-web-services - 添加逻辑以检查 Infra 是否在帐户中,如果没有则部署 AWS-CDK
- python-3.x - 将上市公司数据的 HTML 读入 Dataframe
- c# - 使用字符串格式的 LINQ
- android - 如何创建由片段重叠另一个片段组成的动画?
- uart - 无法在 ESP32 控制器上使用 micropython 和 SIM7070G NB 从 uart 读取数据
- json - Flutter如何从json http响应中获取特定值
- c - C:数组、循环、最小元素值
- python - 向 macbook 终端发送指令
- sql - Azure 流分析 - 计算真值