Декларативная поддержка ресурсов в приложениях для Windows Phone 7
Сейчас Windows Phone 7 доступен в ограниченном списке стран, однако придет день, когда Windows Phone будет приманивать сиянием своего экрана пользователей всего мира. К этому моменту разработчикам приложений нужно хорошо подготовиться и сделать приложения готовыми для локализации. Кроме того, иметь все используемые в приложении строки в одном месте удобно и с точки зрения поддержки и обновления приложения.
Для декларативной привязки строковых значений из ресурсов, нужно выполнить следующие шаги:
1. Создать класс, который будет предоставлять доступ к ресурсам. В примере ниже класс используется для доступа к двум ресурсным файлам MainResources.resx и OtherResources.resx. Не стоит забывать, что модификатор доступа к ресурсам в самих resx файлах должен быть выставлен Public.
namespace MyAppNamespace
{
public class ResourceStrings
{
private static MainResources _res = new MainResources();
private static OtherResources _res = new OtherResources();
public MainResources Strings { get { return _res; } }
public OtherResources OtherStrings { get { return _res; } }
}
}
2. Зарегистрировать созданный ранее класс в ресурсах XAML приложения (App.xaml)
<Application.Resources>
<local:ResourceStrings xmlns:local ="clr-namespace:MyAppNamespace" x:Key="ResourceStrings" />
</Application.Resources>
3. На страницах приложения вместо строк испольовать связки с ресурсами, например
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text=" {Binding Path=Strings.ApplicationTitle, Source={StaticResource ResourceStrings}} " Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text=" {Binding Path=Strings.Settings, Source={StaticResource ResourceStrings}} " Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
Это все. Удачного программирования и всемирной славы вашим приложениям!