Программно получая доступ к Silverlight статический ресурс

Одним решением является системная функция, определенная в системном примере stdlib.h

int system(const char *string);

API

11
задан Cœur 21 January 2019 в 04:41
поделиться

1 ответ

Несмотря на ваш комментарий об обратном, я сомневаюсь в использовании "." в вашем ключе ресурса действительно является источником вашей проблемы. В этой ситуации "." не имеет особого значения и не влияет на доступ к ресурсу. (Я пытался и не смог воспроизвести с ним какие-либо проблемы.)

Однако существует очень большая разница между использованием расширения разметки {StaticResource MyName} и попыткой найти ресурс программным способом.

Расширение разметки заставляет XamlParser искать указанный ключ в свойстве Resources элемента FrameworkElement , которому принадлежит присваиваемое свойство. Если ключ не найден, он ищет его в родительском FrameworkElement и продолжает работу, пока не достигнет корневого FrameworkElement . Если он все еще не найден, он просматривает свойство Resources приложения.

С другой стороны, этот код: -

string myCustomValue = this.Resources[MyCustomValue] as string;

sf просто просматривает единственное свойство Resources для пользовательского элемента управления. Попытки найти ключ в предках или в ресурсах приложения не предпринимаются. Это простой поиск в словаре. Я подозреваю, что это действительно сбило вас с толку.

Сказав, что я бы сказал употребление "." в ключ ресурса может быть не очень хорошей идеей. Знак "." действительно имеет значение в различных сценариях XAML, поэтому его использование в именах ключей также может сбить с толку разработчика, читающего код, даже если Silverlight вполне им доволен.

Если он все еще не найден, он просматривает свойство Resources приложения.

С другой стороны, этот код: -

string myCustomValue = this.Resources[MyCustomValue] as string;

sf просто просматривает единственное свойство Resources для пользовательского элемента управления. Попытки найти ключ в предках или в ресурсах приложения не предпринимаются. Это простой поиск в словаре. Я подозреваю, что это действительно сбило вас с толку.

Сказав, что я бы сказал употребление "." в ключ ресурса может быть не очень хорошей идеей. Знак "." действительно имеет значение в различных сценариях XAML, поэтому его использование в именах ключей также может сбить с толку разработчика, читающего код, даже если Silverlight вполне им доволен.

Если он все еще не найден, он просматривает свойство Resources приложения.

С другой стороны, этот код: -

string myCustomValue = this.Resources[MyCustomValue] as string;

sf просто просматривает единственное свойство Resources для пользовательского элемента управления. Не предпринимается никаких попыток найти ключ в предках или в ресурсах приложения. Это простой поиск в словаре. Я подозреваю, что это действительно сбило вас с толку.

Сказав, что я бы сказал употребление "." в ключ ресурса может быть не очень хорошей идеей. Знак "." действительно имеет значение в различных сценариях XAML, поэтому его использование в именах ключей также может сбить с толку разработчика, читающего код, даже если Silverlight вполне им доволен.

-

string myCustomValue = this.Resources[MyCustomValue] as string;

SF просто просматривает единственное свойство Resources для пользовательского элемента управления. Не предпринимается никаких попыток найти ключ в предках или в ресурсах приложения. Это простой поиск в словаре. Я подозреваю, что это действительно сбило вас с толку.

Сказав, что я бы сказал употребление "." в ключ ресурса может быть не очень хорошей идеей. Знак "." действительно имеет значение в различных сценариях XAML, поэтому его использование в именах ключей также может сбить с толку разработчика, читающего код, даже если Silverlight вполне им доволен.

-

string myCustomValue = this.Resources[MyCustomValue] as string;

SF просто просматривает единственное свойство Resources для пользовательского элемента управления. Не предпринимается никаких попыток найти ключ в предках или в ресурсах приложения. Это простой поиск в словаре. Я подозреваю, что это действительно сбило вас с толку.

Сказав, что я бы сказал употребление "." в ключ ресурса может быть не очень хорошей идеей. Знак "." действительно имеет значение в различных сценариях XAML, поэтому его использование в именах ключей также может сбить с толку разработчика, читающего код, даже если Silverlight вполне им доволен.

17
ответ дан 3 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: