如何比较 System.Windows.Media.SolidColorBrush 和 Microsoft.Office.Interop.PowerPoint.ColorFormat 是否具有相同的颜色?

时间:2021-06-17 08:21:07

标签: c# powerpoint vsto

我有一个用 C#.Net 编写的 VSTO 应用程序。

在 Powerpoint 中,形状的颜色由 Microsoft.Office.Interop.PowerPoint.ColorFormat 定义

例如:Shape.Fill.ForeColor

但我需要将它与 System.Windows.Media.SolidColorBrush

进行比较

是否有一种正确的方法来比较它们的 RGB 值而不会在 Alpha/Opacity 等中出现任何转换问题?

1 个答案:

答案 0 :(得分:0)

Microsoft.Office.Interop.PowerPoint.ColorFormat 看起来像是具有 int 类型的 RGB 属性。名称表明它不包含 alpha 组件,但缺少文档。

SolidColorBrush 有一个可以使用的 Color 属性。不幸的是,颜色似乎没有办法直接将其转换为 int。您可以使用 R、G、B 属性并将它们移到适合 int 的正确位置。或者使用 System.Drawing.Color FromArgbToArgb 将它变成一个 int。进行转换时,您可以选择是否包含 Alpha 值。

最后你应该有两个可以直接比较的 int 值。