作为应用程序的一部分,我有一个 Canvas 对象 <Canvas Name="canvas"/>
我正在尝试按如下方式插入时钟的组件
// Add Background
Image bg = new Image();
bg.SetValue(Canvas.ZIndexProperty, 0);
bg.Source = new BitmapImage(new Uri("images/background.png", UriKind.Relative));
canvas.Width = bg.Source.Width;
canvas.Height = bg.Source.Height;
canvas.Children.Add(bg);
// Add second hand
Image hand = new Image();
hand.SetValue(Canvas.ZIndexProperty, 10);
hand.Source = new BitmapImage(new Uri("images/hand.png", UriKind.Relative));
canvas.Children.Add(hand);
第一张图片(bg)正确显示,但第二张(手)似乎被缩放(原始大小为 5 x 61 像素,创建后询问图像大小显示它已变为 6.66 x 84.02 显示单元) (bg 原始尺寸为 130 x 130 像素,显示单位为 130.4)
我能找到的所有查询答案(StackOverflow 和 Google)都建议图像的 DPI 设置,但我的两个图像都是 96 DPI(根据 Paint) 我曾尝试将图像声明移至 XAML(不是长期解决方案),但这没有任何区别。我试过更改插入图像的顺序但没有效果。我已在 XAML 中明确设置 Canvas 宽度/高度 - 无效。 我已明确设置图像的大小 - 再次无效。
谁能告诉我这是怎么回事?
补充:在windows7 64位上使用.net 4编译
已解决: Paint 报告图像的 DPI 设置不正确。 Paint.Net 给了我正确的值,通过将其更改为 96 DPI,问题得到解决
最佳答案
已解决的问题:Paint 报告的 DPI 不正确。使用备用绘画包 (Paint.net) 显示 DPI 不同。更正此设置可解决问题。
关于c# - 添加到 WPF Canvas 的图像更改大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8990381/