标签: c# powerpoint vsto
我有一个用 C#.Net 编写的 VSTO 应用程序。
在 Powerpoint 中,形状的颜色由 Microsoft.Office.Interop.PowerPoint.ColorFormat 定义
Microsoft.Office.Interop.PowerPoint.ColorFormat
例如:Shape.Fill.ForeColor
Shape.Fill.ForeColor
但我需要将它与 System.Windows.Media.SolidColorBrush
System.Windows.Media.SolidColorBrush
是否有一种正确的方法来比较它们的 RGB 值而不会在 Alpha/Opacity 等中出现任何转换问题?
答案 0 :(得分:0)
Microsoft.Office.Interop.PowerPoint.ColorFormat 看起来像是具有 int 类型的 RGB 属性。名称表明它不包含 alpha 组件,但缺少文档。
SolidColorBrush 有一个可以使用的 Color 属性。不幸的是,颜色似乎没有办法直接将其转换为 int。您可以使用 R、G、B 属性并将它们移到适合 int 的正确位置。或者使用 System.Drawing.Color FromArgb 和 ToArgb 将它变成一个 int。进行转换时,您可以选择是否包含 Alpha 值。
最后你应该有两个可以直接比较的 int 值。