gpt4 book ai didi

c# - Windows 8.1 无缘无故地扩展了 WinForms 应用程序

转载 作者:可可西里 更新时间:2023-11-01 09:39:15 25 4
gpt4 key购买 nike

解决这个问题,你就会成为我的编程英雄:

我的客户使用运行 Windows 8.1 的 Surface Pro 平板电脑该应用程序是基于 WinForms 的桌面应用程序。

当应用程序尝试打开 TIFF 图像时,只有在那时,Windows 才会决定放大应用程序(所谓的显示缩放),结果是应用程序中的所有内容突然变得非常小,以至于您看不到或完全使用它。所以我们想避免这种缩放。 (从“兼容性”选项卡中将其关闭更糟糕)

现在是有趣的部分。代码如下所示:

Stream stream = new MemoryStream(File.ReadAllBytes(fileName));

// At this point the app looks ok...
bitmap = LoadTiffFromStream(stream);

private static Bitmap LoadTiffFromStream(Stream stream)
{
// Here before any code executes, the app is scaled

如您所见,我们将一些文件加载​​到一个流中,我们将流传递给一个方法,在执行该方法的任何代码之前,应用程序被缩放。这仅适用于 TIFF 图像,就好像应用程序以某种方式知道流包含 TIFF 数据一样!

一些测试:

  1. 放入空测试应用程序的相同代码不会产生相同的行为
  2. TIFF 文件不会比其他加载正常的文件大或小,并且与流大小、文件名或任何文件系统权限无关
  3. 我已确认这两行之间没有执行其他代码
  4. 绝对每次都会发生,仅针对 TIFF 图像,对于任何 TIFF 图像以及在执行任何与 TIFF 格式有关的代码之前(我只是将流发送到方法!)

我想不通。可以吗?

最佳答案

您是否尝试过不同的图片加载方式?

Bitmap img = Image.FromFile(@"MyImage.tif").Clone() as Bitmap;

关于c# - Windows 8.1 无缘无故地扩展了 WinForms 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27487550/

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