Я пытаюсь установить свойство, являющееся перечислением, используя целочисленное значение, например
Graphics g = this.CreateGraphics();
int enumValue = 2; // corresponds to SmoothingMode.HighQuality
g.SmoothingMode = (SmoothingMode)2; // does not have expected result
// also tried:
SmoothingMode sm = (SmoothingMode)Enum.ToObject(typeof(SmoothingMode), enumValue); // works correctly
g.SmoothingMode = sm; // still doesn't work!
Но свойство объекта никогда не устанавливается в правильное значение перечисления.Я выполнил это через отладчик VS2010, и приведение и / или использование Enum.ToObject работает правильно, но после назначения g.SmoothingMode
равно, например, AntiAlias вместо HighQuality.На самом деле, независимо от того, какое число я произнесу, назначение всегда приводит к тому, что AntiAlias (int эквивалент 3) или None (int эквивалент 4) присваивается свойству объекта.
Есть ли что-то другое, когда перечислениеэто свойство класса, которое влияет на приведение и присвоение, или просто что-то странное в Graphics.SmoothingMode, или что?