2012-12-21 2 views
2

나는 다음과 같은 WPF에서 XAML로 소문자 대문자로 변환하려고 :XAML로 WPF에서 소문자를 대문자로 변환하는 방법은 무엇입니까?

<TextBox Height="86" CharacterCasing="Upper"/> 

내가 TextBlock, LabelButton과 같은 시나리오를 달성하고자합니다.

어떻게하면됩니까?

+0

이 컨트롤의 수에 대한 직접 사용할 수 없습니다를 만들 것이다 귀하의 사용자 정의 변환기와 그것을 사용하십시오. – ryadavilli

+0

ryadavilli, 사용자 지정 변환기를 만드는 방법을 알지 못합니다. 내 물건을주세요. –

+0

질문이 제목과 일치하지 않는 이유는 무엇입니까? 소문자 ↔ 대문자? – Pang

답변

2

한 가지 방법은 NotifyOnTargetUpdated을 사용하고 TextChanged 이벤트를 처리하는 것입니다.

XAML

<TextBlock Name="TB" Text="{Binding Path=YourProperty, NotifyOnTargetUpdated=True}" 
       TargetUpdated="TB_TargetUpdated" /> 

코드

private void TB_TargetUpdated(object sender, DataTransferEventArgs e) 
{ 
    TB.Text = TB.Text.ToUpper(); 
} 
+0

@ChandruA이 답변으로 도움이 되었으면 알려 주시기 바랍니다. – Ramin

+0

당신은 그 일을 할 수 있습니다. 그러나 아주 특별한 경우입니다 - 당신은 모든 통제를 위해 그렇게해야 할 것입니다. _value converters_를 사용하는 것이 더 좋습니다 ** David Button **이이 페이지에 언급했습니다. 그들은 재사용 할 수있을뿐 아니라 일을하는 WPF 방식입니다. – MickyD

6

당신은 값 변환기를 사용해야 뒤에 :

public class ToUpperValueConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     var str = value as string; 
     return string.IsNullOrEmpty(str) ? string.Empty : str.ToUpper(); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     return null; 
    } 
} 
관련 문제