我有一张 24x24 的图像。如果我不在 xaml 中输入宽度和高度并设置 Stretch="None",我的 24x24 的尺寸将达到 32x32。 “无拉伸”不应该意味着图像以 24x24 显示吗?
如果我强制将图像设置为 24x24,那么我会得到原始图像中不存在的额外像素。
我希望图像以 100% 大小/比例显示,并具有“像素完美”/“点过滤”渲染。
我在一个相关问题上读到,一些图像的 DPI 为 96,而另一些图像的 DPI 为 72,这可能会导致奇怪的行为。我尝试按照教程检查图像的 DPI,但教程所说的位置(红线处)没有 DPI 信息:
无论哪种方式,即使我修复图像 DPI 与我的屏幕 DPI 相同(也不知道如何检查),其他人的屏幕上不会有问题吗?我不希望图像在仅 96 DPI 的屏幕上呈现像素完美。我希望它始终保持像素完美,我始终希望图像的 1 个像素对应于应用程序/屏幕上的 1 个像素。
这在WPF中不可能实现吗?如果是的话,我怎样才能至少做到这一点,使尴尬的额外像素“均匀”(看看中间的图像,它在宽度上有额外的像素,但在高度上没有),以便所有图像都以相同的方式缩放(根据图像在窗口中放置的位置,额外的像素位于不同的位置,我希望同一图像的每个实例看起来都相同)。
为了将
Image
元素调整到其 PixelWidth
图像的 PixelHeight
和 Source
的大小,您可以绑定其 Width
和 Height
,如下所示。
同时将
RenderOptions.BitmapScalingMode
设置为 NearestNeighbor
以避免像素插值。
<Image ...
Width="{Binding Source.PixelWidth, RelativeSource={RelativeSource Self}}"
Height="{Binding Source.PixelHeight, RelativeSource={RelativeSource Self}}"
Stretch="Fill"
RenderOptions.BitmapScalingMode="NearestNeighbor"/>