2014-10-02 2 views
-1

Вот немного моего кода.Invalid Argument, Не знаете, почему

drawingContext.DrawEllipse(this.handOpenBrush, null, handPosition, HandSize, HandSize); 

Этот код работает нормально.

Хотя, как только я это сделаю, я получаю ошибки, что у него есть некоторые недопустимые аргументы.

drawingContext.DrawEllipse(this.handOpenBrush, null, (handPosition.Offset(20,20)), HandSize, HandSize); 

Все, что я делаю, это смещение точки handPosition по (20,20). Я не вижу, что я мог сделать, чтобы вызвать внезапную ошибку программы.

+2

Какой язык и API вы используете (на самом деле это C#, как догадки Энтони)? Вам будет сложно получить помощь, если вы нас угадаете. Кроме того, какие «ошибки»? Являются ли эти ошибки компиляции, ошибки во время выполнения? Каков фактический * текст ошибки? –

+3

Посмотрите, что возвращает «Point.Offset» (или больше, до чего он не возвращается) –

+1

Плюс 1 за каламбур! – Sorceri

ответ

2

Point.Offset не возвращает новую точку - это мутирует существующие Point. Таким образом, вы должны либо мутировать точку перед тем сделать вызов DrawEllipse:

handPosition.Offset(20,20); 
drawingContext.DrawEllipse(this.handOpenBrush, null, handPosition, HandSize, HandSize); 

или использовать метод, который делает вернуть новый Point:

drawingContext.DrawEllipse(this.handOpenBrush, null, Point.Add(handPosition, new Vector(20,20)), HandSize, HandSize); 
0

handPosition является Point.

Point.Offset() - метод, возвращающий пустоту, а не Point, поэтому аргумент недействителен.

Вместо этого позвоните handPosition.Offset(20,20) перед вызовом drawingContext.DrawEllipse(), а затем вы можете передать handPosition в качестве третьего аргумента.

Смежные вопросы