2014-12-16 11 views
0

WPF 애플리케이션이 있습니다.WPF가 입찰가 유니 코드를 지원하지 않습니까?

숫자와 단어가 포함 된 히브리어 문장을 표시하고 싶습니다.

나는 유니 코드 쌍방향 대해 읽고 다음과 같은 것을 거의 코드를 작성 :

이제
const string PDF = "\u202C"; 
const string LRO = "\u202D"; 
const string RLO = "\u202E"; 
const string TEXT = "ערך ראשון : ערך שני"; 

var parts = TEXT.Split(':'); 
double number = -50; 
double number2 = -200; 
string str = string.Empty; 

str +=RLO + parts[0] + PDF; 
str +=LRO + number + PDF; 
str +=RLO + parts[1] + PDF; 
str +=LRO + shortValue + PDF; 
Text = str; 

XAML에서 :

<TextBlock Text="FlowDirection=LeftToRight TextAlignment=Right Language=he-IL" Grid.Column="0" Grid.Row="0" /> 
    <TextBlock Text="{Binding Text}" FlowDirection="LeftToRight" Language="he-IL" TextAlignment="Right" Grid.Column="1" Grid.Row="0"/> 

    <TextBlock Text="FlowDirection=LeftToRight TextAlignment=Left Language=he-IL" Grid.Column="0" Grid.Row="1"/> 
    <TextBlock Text="{Binding Text}" FlowDirection="LeftToRight" Language="he-IL" TextAlignment="Left" Grid.Column="1" Grid.Row="1"/> 

    <TextBlock Text="FlowDirection=RightToLeft TextAlignment=Left Language=he-IL" Grid.Column="0" Grid.Row="2"/> 
    <TextBlock Text="{Binding Text}" FlowDirection="RightToLeft" Language="he-IL" TextAlignment="Left" Grid.Column="1" Grid.Row="2"/> 

    <TextBlock Text="FlowDirection=RightToLeft TextAlignment=Right Language=he-IL" Grid.Column="0" Grid.Row="3"/> 
    <TextBlock Text="{Binding Text}" FlowDirection="RightToLeft" Language="he-IL" TextAlignment="Right" Grid.Column="1" Grid.Row="3"/> 

그러나 WPF에서 지원되지 않는 것 같다 -에 우리가 할 수있는 여기 참조 :

enter image description here

부정적인에게 번호는 .. 제대로 설계되지 않습니다

편집 :

덕분에 자신의 링크에 대한 한스 옆모습에 많은.

const string LRO = "\u200E"; 
    const string RLO = "\u200F"; 

을 그리고 지금은 적절한 설계 :

나는 사람들에게 LRO 및 RLO의 값을 변경합니다.

enter image description here

감사합니다!

+0

어떻게 예상 된 결과의 모습? – quetzalcoatl

+0

https://en.wikipedia.org/wiki/Right-to-left_mark –

+0

오른쪽에 디자인하지 말고 빼기 기호를 숫자의 왼쪽에 두어야한다는 예상 결과입니다. –

답변

0

올바른 문화권의 번호를 인쇄해야합니다. 지금은 문자열을 쓰는 방법을 프로그램에 정확히 알려주고, 여러분이 말한대로 처리합니다.

특수 숫자 서식이 필요한 경우 Culture을 사용해야합니다.

참조 : http://msdn.microsoft.com/en-us/library/shxtf045%28v=vs.110%29.aspx

double value = -16325.62015; 
// Display value using the invariant culture. 
Console.WriteLine(value.ToString(CultureInfo.InvariantCulture)); 
// Display value using the en-GB culture. 
Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("en-GB"))); 
// Display value using the de-DE culture. 
Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("de-DE"))); 
+0

그것은 wpf이고 -이 해결책은 저에게 도움이되지 않습니다. 감사 –