答案 0 :(得分:8)
这是转换的方式,所以让我们从这里开始,看看是否有人可以超越这个可怕的装置。它们很好地映射到彼此,因此编写开关盒应该相当容易。
private static System.Windows.Media.PixelFormat ConvertPixelFormat(System.Drawing.Imaging.PixelFormat sourceFormat)
{
switch (sourceFormat)
{
case System.Drawing.Imaging.PixelFormat.Format24bppRgb:
return PixelFormats.Bgr24;
case System.Drawing.Imaging.PixelFormat.Format32bppArgb:
return PixelFormats.Bgra32;
case System.Drawing.Imaging.PixelFormat.Format32bppRgb:
return PixelFormats.Bgr32;
// .. as many as you need...
}
return new System.Windows.Media.PixelFormat();
}
答案 1 :(得分:-3)
主题已经很老了,但这就是我在假设两个枚举都具有所有相同的String值的情况下解决这个问题的方法。
private static System.Windows.Media.PixelFormat ConvertPixelFormat
(System.Drawing.Imaging.PixelFormat sourceFormat)
{
System.Windows.Media.PixelFormat pixelFormat = (System.Windows.Media.PixelFormat)
Enum.Parse(typeof(System.Windows.Media.PixelFormat), sourceFormat.ToString());
return pixelFormat;
}