当Stretch设置为None时,WPF中的图像控制拉伸图像

spr*_*t12 3 wpf image stretch

我在网格内有一个图像控件,显示一个16x16图标.但由于某些原因,即使我设置属性使其保持16x16,它看起来很紧张.

在此输入图像描述

代码:

<UserControl x:Class="ChatControls.UserListItem"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" d:DesignHeight="28" d:DesignWidth="132">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="24" MinWidth="24" MaxWidth="24" />
            <ColumnDefinition Width="171*" />
        </Grid.ColumnDefinitions>
        <Image Name="imgIcon" Source="/ChatControls;component/Images/NormalUser.png" VerticalAlignment="Center" HorizontalAlignment="Center" Stretch="None" />
        <Label Content="Muhammad[A]" Grid.Column="1" Name="lblNick" VerticalContentAlignment="Center" Padding="8,5,5,5" />
    </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

这有什么理由吗?

更新1:

是的,在运行时也:(

在此输入图像描述

提前谢谢了.

hba*_*rck 16

实际上,我经常看到PNG图像.似乎PNG的默认分辨率为72dpi,而WPF中的默认屏幕分辨率为96dpi.WPF尝试通过将png位图缩放到其像素大小的133%来考虑这一点,这在技术上是正确的,但通常不是用户想要的.您可以使用gif或jpg代替,也可以将图像与LayoutTransform组合,将其缩放到其大小的0.75,或者只是明确地设置图像控件的大小.