2011-03-02 2 views
6

코드 블렌드없이 블렌드를 사용하여 WP7에서 서로 다른 시각적 상태의 서로 다른 지역화 된 문자열을 설정하려면 어떻게해야합니까?Blend를 사용하여 WP7에서 다른 시각적 상태의 다른 지역화 된 문자열을 설정하는 방법은 무엇입니까?

다양한 시각화 상태로 다른 지역화되지 않은 문자열을 설정할 수 있습니다 (깜박임). 작동하지만 지역화 된 문자열은 어떨까요?

Blend에서 데이터 바인딩을 사용하여 문자열을 변경하면 Blend가 기록중인 실제 상태가 아닌 기본 상태의 데이터 바인딩을 재정의합니다.

편집 :

내가 AppPresources.resx라는 자원 파일이 :

이 내 문자열을 지역화하는 방법이다. 그럼 코드에서이 작업을 수행 할 것입니다 :

// setting localized button title 
    mainButton.Content = AppResources.MainButtonText; 

는 그럼 난 데이터 바인딩에 대해 다음 속성을 MVVM 라이트 툴킷에서 GlobalViewModelLocator 있습니다.
private static AppResources _localizedStrings; 
    public AppResources LocalizedStrings 
    { 
     get 
     { 
      if (_localizedStrings == null) 
      { 
       _localizedStrings = new AppResources(); 
      } 
      return _localizedStrings; 
     } 
    } 

그리고 XAML 파일에

:

<Button x:Name="mainButton" Content="{Binding LocalizedStrings.MainButtonText, Mode=OneWay, Source={StaticResource Locator}}" ... /> 
+0

은 당신이 당신의 현지화 –

+0

I을하고있는 방법의 예를 제공 할 수 있습니다 내 질문을 현지화 방법으로 업데이트했습니다. – Buju

답변

4

당신이해야 할 일은, 당신이 이미하고있는 일에 매우 가깝습니다. 첫째, 이것은 우리가 XAML에서 리소스 파일의 인스턴스를 만들 수 있습니다 내용

public class Resources 
{ 
    private static AppResources resources = new AppResources(); 

    public AppResources LocalizedStrings 
    { 
     get 
     { 
      return resources; 
     } 
    } 
} 

을 다음과 같이 Resources.cs라는 이름의 클래스를 정의합니다. 당신이 당신의 XAML에서 바인딩을 할 필요가있을 때

<Application.Resources> 
    <local:Resources x:Key="Resources" /> 
</Application.Resources> 

다음이 오픈 App.xaml을하고 추가하려면 지금, 당신은 이런 식으로 그것을 할 : 당신이 알 수있는 것들

<Button Content="{Binding LocalizedStrings.MainButtonText, 
          Source={StaticResource Resources}}" /> 

입니다 블렌드에서는 작동하지 않는다. 아직. 이 Expression Blend를 작동하려면 다음 파일 추가 내용 이제

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:local="clr-namespace:YourNameSpace"> 
    <local:Resources x:Key="Resources" /> 
</ResourceDictionary> 

다음 속성 폴더에서 DesignTimeResources.xaml, 그리고 추가, 당신은 당신을 재 컴파일 할 Visual Studio에서 F6을 눌러 봐라 Expression Blend에서 지역화 된 문자열을 사용할 수 있습니다!

내 프로젝트 중 하나에서 실제 예제 :

+0

좋은 thx! 나는 WP7에 다시있을 때 그것을 시도 할 것이다. – Buju