Я выпустил приложение для Windows-телефона некоторое время назад. С тех пор, BugSense сообщили о проблеме, которая вызывает некоторые сбои в зарубежных странах:иностранная культура XML-синтаксический анализ текста
System.ArgumentException - символ «I» (0x0130) не доступен в этом SpriteFont. Если применимо, отредактируйте начало и конец шрифта CharacterRegions, чтобы включить этот символ. Имя параметра: характер
и вот трассировки стека:
на Microsoft.Xna.Framework.Graphics.SpriteFont.GetIndexForCharacter (Char характер) в Microsoft.Xna.Framework.Graphics .SpriteFont.InternalMeasure (StringProxy & текст) в Microsoft.Xna.Framework.Graphics.SpriteFont.MeasureString (String текст) в GlobalEngine.Visual.TextBase.CalculateSpriteOrigin (отправитель объекта, EventArgs е) в Sys tem.EventHandler.Invoke (отправитель объекта, EventArgs е) в GlobalEngine.Visual.TextBase.set_FormattedText (строковое значение) при GlobalEngine.Visual.TextLabel.set_Text (строковое значение) при FourWordsLibrary.GameUtils.Letter..ctor (Символьное письма, assetManager assetManager, SpriteBatch SpriteBatch, Единичная ширина) при FourWordsLibrary.GameUtils.Word..ctor (String, String orderedWord shuffledWord, assetManager assetManager, SpriteBatch SpriteBatch, InputManager InputManager, одиночный letterWidth) в FourWordsLibrary.GameUtils.Word ..ctor (String orderedWord, String shuffledWord, AssetManager assetManager, SpriteBatch spriteBatch, InputManager inputManager) в FourWords Library.Controllers.GameControl.StatePlay.SetupNextLevel() в FourWordsLibrary.Controllers.GameControl.StatePlay.Activate (Object OBJ) при GlobalEngine.Base.StateManager
1.SetState(T state, Object obj) at GlobalEngine.Base.StateManager
1.SetState (Т состояние) в FourWordsLibrary.Controllers.GameControl.SetPack (PackManager packManager) на FourWords.Screens.GameScreen..ctor (двигатель двигателя, Object объект)
Мое приложение является игра в слова, и я получить слова для каждого уровня из файла XML. Поэтому я подозреваю, что, когда XmlReader читает файл, он делает это, используя иностранную культуру, которая приводит к получению латинской буквы, а затем приложение падает, когда пытается нарисовать букву с использованием строго английского шрифта sprite-font. Я попытался найти способ проинструктировать XmlReader для чтения с использованием InvariantCulture, аналогично тому, который найден в методе .toString(), но не нашел. Есть идеи, как решить эту проблему?
У меня есть аналогичная проблема, вы когда-нибудь выяснили, как ее решить? – Orujimaru