Думаю, самый быстрый способ исправить следующее — объявить собственную резервную переменную?
Код: Выделить всё
public Point Origin { get; set; }
Origin.X = 10; // fails with CS1612
это не переменная.
Предпринята попытка изменить тип значения, который был результатом
промежуточного выражения. Поскольку значение не сохраняется, оно
не изменится.
Чтобы устранить эту ошибку, сохраните результат выражения в
промежуточном значении или используйте ссылочный тип для промежуточного
выражения.