I don't believe Windows comes with any OpenType fonts, so unless you install them yourself, Fonts.SystemFontFamilies
won't contain any.
That said, you could try filtering the list by retrieving the font's file name:
GlyphTypeface glyph;
var fonts = Fonts.SystemFontFamilies.Where(f => f.GetTypefaces().Any(t =>
t.TryGetGlyphTypeface(out glyph) &&
glyph.FontUri.ToString().EndsWith("otf", StringComparison.OrdinalIgnoreCase)));
Another way is to use the private FontTechnology
proeprty:
GlyphTypeface glyph;
var FontTechnologyProperty = typeof(GlyphTypeface).GetProperty("FontTechnology", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
var OpenType = Enum.Parse(FontTechnologyProperty.PropertyType, "PostscriptOpenType");
var fonts = Fonts.SystemFontFamilies.Where(f => f.GetTypefaces().Any(t =>
t.TryGetGlyphTypeface(out glyph) &&
Object.Equals(FontTechnologyProperty.GetValue(glyph), OpenType)));