Reputation: 22223
I'm using an object from a 3rd party API that has a property of type System.Windows.Media.ImageSource
, yet I can't seem to find the System.Windows.Media namespace anywhere. If I try to add a reference to my project I don't see System.Windows.Media
in the list of options. My project is also targeting .Net 3.5.
Is there something else I need to do to be able to access this namespace?
Upvotes: 108
Views: 148539
Reputation: 463
I found an answer on CodeProject which worked for me.
Open your project file, the *.csproj
file so you can edit it as a text file. If like me you were targeting net6.0
you'll see something like this:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<OutputType>WinExe</OutputType>
</PropertyGroup>
</Project>
Now, instead of net6.0
you need to target net6.0-windows
and you also have to set the UseWpf
-flag. Then your *.csproj
file should like something like this:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0-windows</TargetFramework>
<UseWpf>true</UseWpf>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<OutputType>WinExe</OutputType>
</PropertyGroup>
</Project>
Upvotes: 2
Reputation: 5243
I my case I needed to specify Platforms
tag - for some reason it did not work otherwise.
<PropertyGroup>
<!-- Must be here for this example, otherwise 'using System.Windows.Media.Media3D' does not work for intellisense -->
<Platforms>x64</Platforms>
</PropertyGroup>
Visual studio 2019 v16.9.1.
Upvotes: 0
Reputation: 383
You can add PresentationCore.dll more conveniently by editing the project file. Add the following code into your csproj file:
<ItemGroup>
<FrameworkReference Include="Microsoft.WindowsDesktop.App" />
</ItemGroup>
In your solution explorer, you now should see this framework listed, now. With that, you then can also refer to the classes provided by PresentationCore.dll.
Upvotes: 28
Reputation: 2923
The System.Windows.Media.Imaging
namespace is part of PresentationCore.dll (if you are using Visual Studio 2008 then the WPF application template will automatically add this reference). Note that this namespace is not a direct wrapping of the WIC library, although a large proportion of the more common uses are still available and it is relatively obvious how these map to the WIC versions. For more information on the classes in this namespace check out
http://msdn2.microsoft.com/en-us/library/system.windows.media.imaging.aspx
Upvotes: 69
Reputation: 5764
For Visual Studio 2017
Find "References" in Solution explorer
Right click "References"
Choose "Add Reference..."
Find "Presentation.Core" list and check checkbox
Click OK
Upvotes: 20
Reputation: 449
Add PresentationCore.dll
to your references. This dll url in my pc - C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\PresentationCore.dll
Upvotes: 41