diff --git a/Source/Libs/GtkSharp/CssProvider.cs b/Source/Libs/GtkSharp/CssProvider.cs
new file mode 100644
index 000000000..764498150
--- /dev/null
+++ b/Source/Libs/GtkSharp/CssProvider.cs
@@ -0,0 +1,27 @@
+namespace Gtk
+{
+ using System;
+ using System.IO;
+ using System.Reflection;
+
+ public partial class CssProvider
+ {
+ public bool LoadFromResource(string resource) => LoadFromResource(Assembly.GetCallingAssembly(), resource);
+
+ public bool LoadFromResource(Assembly assembly, string resource)
+ {
+ if (assembly == null)
+ assembly = Assembly.GetCallingAssembly();
+
+ Stream stream = assembly.GetManifestResourceStream(resource);
+ if (stream == null)
+ throw new ArgumentException("'" + resource + "' is not a valid resource name of assembly '" + assembly + "'.", nameof(resource));
+
+ using (var reader = new StreamReader(stream))
+ {
+ string data = reader.ReadToEnd();
+ return LoadFromData(data);
+ }
+ }
+ }
+}
diff --git a/Source/Libs/GtkSharp/GtkSharp.metadata b/Source/Libs/GtkSharp/GtkSharp.metadata
index 1293f72e6..c0ff7cd3a 100644
--- a/Source/Libs/GtkSharp/GtkSharp.metadata
+++ b/Source/Libs/GtkSharp/GtkSharp.metadata
@@ -1017,6 +1017,8 @@
async
async
+ 1
+
true
true