【问题标题】:Images do not render correctly in WPF ribbon control图像无法在 WPF 功能区控件中正确呈现
【发布时间】:2015-12-26 20:51:37
【问题描述】:

我刚刚购买了一些用于 WPF 功能区控件的图像集。图像完美无瑕;但是,它们无法在控件中正确呈现。

无论是小图像还是大图像都没有正确渲染。我尝试了不同的图像尺寸,但似乎没有任何区别。

我有一系列不同尺寸的图片可用。这是我的 XAML 的 sn-p。

<RibbonTab Header="Edit">
    <RibbonGroup Header="Clipboard">
         <RibbonButton Label="Paste" LargeImageSource="Images\paste.png" ToolTipFooterTitle="" ToolTipImageSource="Images/paste_sm.png" ToolTipTitle="Paste" ToolTipDescription="Insert text from the clipboard at the current location"></RibbonButton>
         <RibbonButton Label="Cut" SmallImageSource="Images\cut_sm.png" ToolTipDescription="Cut the selected text" ToolTipTitle="Cut" ToolTipImageSource="Images/cut.png"></RibbonButton>
         <RibbonButton Label="Copy" SmallImageSource="Images\copy_sm.png" ToolTipDescription="Copy the selected text" ToolTipTitle="Copy" ToolTipImageSource="Images/copy.png"></RibbonButton>
         <RibbonButton Label="Select All" ToolTipDescription="Select all text in document" ToolTipTitle="Select All"></RibbonButton>
     </RibbonGroup>
</RibbonTab>

我是 WPF 的新手,我很惊讶我必须与这样的问题作斗争。

有人知道如何让我的图片正确渲染吗?

【问题讨论】:

  • Images\paste.png 的大小是多少?
  • 如问题所示,我尝试了不同的尺寸,包括 32x32 和 64x64。
  • 我提到了确切的文件 (Images\paste.png) 并且没有提到大小(“不同”不是大小)。
  • 它不能是任何尺寸,如果你指定LargeImageSource它应该是32x32 at 96dpi。
  • The image files don't appear to specify DPILargeImageSource 在 96 DPI 显示时应该是 32x32。

标签: c# wpf image ribbon


【解决方案1】:

在 RibbonButtons 上为 RenderOptions.BitmapScalingMode 尝试几个不同的选项。我发现有时NearestNeighbor 效果更好。 UseLayoutRounding="True" 也可能有所帮助。

【讨论】:

  • RenderOptions.BitmapScalingMode 似乎根本没有任何区别。 UseLayoutRounding 确实会影响输出;但是,它仍然无法正确显示图像。它仍然存在违规行为。当然,除了这个事实之外,即使它确实有效,也必须为每个按钮指定它似乎是一个糟糕的设计。我是 WPF 的新手,我绝对没有留下深刻的印象。在这里,我期待我的大图标应该是这个大小而我的小图标应该是那个大小的信息。但是对于 WPF,事情永远不会那么容易。
  • 您可以使用一种样式,而不必为每个按钮声明它,但无论如何,原始图像是什么样的,我假设您正在缩小它?
  • 原始图像类似于this。我有一系列可用的尺寸,并且可以自己调整它们的大小。我擅长创建图形图像。所以最终我不希望他们扩大规模。我希望它们看起来和它们原来的样子一样好。
  • 这可能与 DPI 有关,根据字体大小,您似乎在高 DPI 显示器上。见hanselman.com/blog/…
  • 我之前确实看过那篇文章。我会仔细观察并尝试运行一些测试。谢谢。
猜你喜欢
  • 1970-01-01
  • 2019-08-18
  • 2020-05-02
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多