Ответ 1
Несмотря на ваш комментарий об обратном, я сомневаюсь в использовании ".". в вашем ключе ресурса действительно является источником вашей проблемы. В этой ситуации "." не имеет особого значения и не повлияет на доступ к ресурсу. (Я пытался и не смог воспроизвести с ним какие-либо проблемы).
Существует очень большая разница между использованием расширения расширения {StaticResource MyName}
и попыткой поиска ресурса программно.
Расширение разметки заставляет XamlParser искать указанный ключ в свойстве Resources
объекта FrameworkElement
, которому принадлежит присвоенное свойство. Если ключ не найден, он ищет его в родительском FrameworkElement
, и он продолжает движение, пока не достигнет корня FrameworkElement
. Если он еще не найден, он имеет вид свойства Application Resources.
С другой стороны, этот код: -
string myCustomValue = this.Resources[MyCustomValue] as string;
sf просто ищет одно свойство Resources для пользовательского элемента управления. Не предпринимаются попытки выследить ключ у предков или ресурсов приложения. Его простой поиск словаря. Я подозреваю, это то, что вас действительно трогало.
Сказав, что я бы сказал, используя "." в ключе ресурса не может быть хорошей идеей. "." имеет смысл в разных сценариях XAML, поэтому использование его в именах ключей также может смутить разработчика, читающего код, хотя Silverlight вполне доволен им.