See the question and my original answer on StackOverflow

The property system in Windows has a complex story, you can find more information about it here: Extracting Windows File Properties (Custom Properties) C#

You could try it with the Microsoft.WindowsAPICodePack.Shell nuget package:

  var file = ShellFile.FromFilePath("your image.jpg");
  using (var writer = file.Properties.GetPropertyWriter())
  {
      writer.WriteProperty(file.Properties.System.Comment, "hello");
  }

But, in the case of images, the shell may not be able to write extra properties on the file itself (most imaging codecs except JPG don't support such a 'comments' metadata). What I suggest in this case is use this CodeFluentRuntime nuget package's CompoundStorage class, here is an example:

static void Main(string[] args)
{
    var storage = new CompoundStorage("your image.png", false); // open for write
    storage.Properties.Comments = "hello"; // change well-known "comments" property
    storage.CommitChanges();
}

It will work and write the property information not stricly on the file, but on NTFS (it works also on pure plain .txt files for example). If you read the file again and browse all properties, like this, you should see it:

static void Main(string[] args)
{
    var storage = new CompoundStorage("consent.png"); // open for read
    foreach (var prop in storage.Properties)
    {
        Console.WriteLine(prop.Name + "=" + prop.Value);
    }
}

Now, the problem is, with recent versions of Windows, the shell property sheet you show in your question will not display the Comments property (for example, I'm running on Windows 10 and I don't see it although it's properly written). Unfortunately, there is not many other options for images files.