A certificate contains binary content, you shouldn't use a StreamReader
to read it (it's meant to be used only for text).
Instead, read directly the content from the stream:
var resourceStream = Application.GetResourceStream(new Uri("myCert.der", UriKind.Relative));
var content = new byte[resourceStream.Stream.Length];
resourceStream.Stream.Read(content, 0, content.Length);
X509Certificate cert = new X509Certificate(content);