Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't find System.Windows.Vector in C#

I'm making a Windows Forms application in Visual Studio 2010 Ultimate, but can't get the built-in Vector to work.

Microsoft says that there is a System.Windows.Vector in the .NET Framework 4:

Maybe I'm making some large mistake, but Visual Studio complains about trying to use Vector in any way, and it doesn't come up in the IntelliSense autocomplete:

The line Vector v = new Vector(20, 30); gives

Compile error Error 1 The type or namespace name 'Vector' could not be found (are you missing a using directive or an assembly reference?)"

I tried including a using System.Windows at the top but that didn't solve the problem.

I went to References -> Add Reference to try to find something to add, but nothing was obvious.

The problem may be: Also listed with Vector in the System.Windows namespace, there are other classes like Rect or Application. I could use these as System.Drawing.Rectangle or System.Windows.Forms.Application, but none of these show up as part of some System.Windows namespace

I've tried different things for about 2 hours, and found this related post (but Vector is part of .NET 4, so their fix doesn't seem worthwhile?) and this possibly related post but I do have .NET Framework 4 installed.

Does anyone have an example of Vector? I know I could get a third party class, but I feel I'm missing something, and want to learn/have the solution posted for other people googling the same problem.

like image 689
Carl Walsh Avatar asked May 26 '11 17:05

Carl Walsh


2 Answers

Add a reference to WindowsBase.
The Vector class is defined in the WindowsBase.dll assembly within the System.Windows namespace.

like image 51
crypted Avatar answered Sep 20 '22 10:09

crypted


System.Windows.Vector is a part of WPF, not Windows Forms, hence the difficulty you've having when trying to use it. You could add a reference to WindowsBase.dll, but given that it's intended for use in WPF applications, rather than Windows Forms applications, it's likely that you'd derive little benefit from doing so.

Microsofts decision to put WPF components in System.Windows and WinForms in System.Windows.Forms is a source of endless confusion on the internet, quite what was wrong with System.Windows.Presentation or similar for WPF, I'll never know!

like image 34
Rob Avatar answered Sep 17 '22 10:09

Rob