WPF 문자열 형식={0:C} 달러로 표시
이 줄 코드는 왜
<TextBlock Text="{Binding Net, StringFormat=c}"/>
모든 지역 설정이 영국으로 설정되면 결과를 $xx.xx로 출력합니다.저는 그것이 £xx.xx로 출력될 것으로 예상합니다.아이디어 있어요?StringFormat={}{0:를 포함하여 다양한 변형의 문자열 형식을 사용해 보았습니다.C} 하지만 여전히 같은 결과를 얻습니다.
찾아주셔서 감사합니다.
저는 이것이 수리되었는지 확실하지 않습니다.NET 4, 하지만 WPF는 화폐나 날짜와 같은 것을 렌더링할 때 현재의 문화를 배운 적이 없습니다.이것은 제가 큰 실수라고 생각하는 것이지만, 감사하게도 쉽게 고쳐졌습니다.
앱 클래스:
protected override void OnStartup(StartupEventArgs e)
{
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(
CultureInfo.CurrentCulture.IetfLanguageTag)));
base.OnStartup(e);
}
메인 창에서 Language="en-GB"를 수행합니다.
<Window x:Class="AllocateWPF.Vouchers"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Test" Height="692" Width="1000" Language="en-GB">
나에게 맞는 것:
app.xaml에서 OnStartup()을 재정의하고 -을 추가합니다.System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("et-EE");
XAML @ 창 레벨에서 정의 -xmlns:sysglb="clr-namespace:System.Globalization;assembly=mscorlib"
XAML에서 -<TextBox Text="{Binding Path=Price, StringFormat='{}{0:C}', ConverterCulture={x:Static sysglb:CultureInfo.CurrentUICulture}}" />
이렇게 하면 사용자 지정 국가별 설정이 올바르게 선택됩니다.첫 번째 단계에서 수동으로 생성된 CultureInfo를 사용하고 있지만, 정적 유형 중 하나인 예를 전달할 수 있다고 확신합니다.시스템.세계화.CultureInfo.Current Culture (테스트하지는 않았지만...)
언급URL : https://stackoverflow.com/questions/2764615/wpf-stringformat-0c-showing-as-dollars
'programing' 카테고리의 다른 글
의 문자열에서 분음 부호(악센트)를 제거하려면 어떻게 해야 합니까?NET? (0) | 2023.05.07 |
---|---|
게시물:복합 키를 사용하는 방법? (0) | 2023.05.07 |
Linux: 대상 dir(존재하지 않는 경우) 복사 (0) | 2023.05.07 |
MVVM을 사용하여 WPF에서 새 창을 생성하는 최상의 방법 (0) | 2023.05.07 |
SQL Server의 행 간격띄우기 (0) | 2023.05.07 |