簡體   English   中英

如何使用XAML和C#在WP8中實現轉換器以大寫TexBlock中單詞的首字母?

[英]How to implement a converter in WP8 using XAML and C# for capitalize the first letter of a word in a TexBlock?

我在XAML中有一個帶有TexBlock的數據模板。 此TexBlock在單詞列表中顯示一個單詞。 我想將第一個字母大寫,因為所有單詞都是小寫。

<phone:PhoneApplicationPage.Resources>
        <DataTemplate x:Key="AddrBookItemTemplate">
            <StackPanel VerticalAlignment="Top">
                <TextBlock Margin="5,0,0,0" FontSize="20" Text="{Binding name}" />
            </StackPanel>
        </DataTemplate>
 </phone:PhoneApplicationPage.Resources>

在C#中實現轉換器

namespace Converter.ViewModels

{

    public class ToCapitalizeConverter : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                return char.ToUpper(value.ToString()[0]) + value.ToString().Substring(1);
            }

            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                return (value as string).ToLower();
            }
        }
}

在App.xaml中

... xmlns:vm =“ clr-namespace:Converter.ViewModels”

   <Application.Resources>
          <vm:ToCapitalizeConverter x:Key="ToCapitalizeConverter"/>    
    </Application>

在MainPage.xaml中

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Key="AddrBookItemTemplate">
                <StackPanel VerticalAlignment="Top">
                    <TextBlock Margin="5,0,0,0" FontSize="20" Text="{Binding name, Converter={StaticResource ToCapitalizeConverter}}" />                 
                </StackPanel>
           </DataTemplate>
     </phone:PhoneApplicationPage.Resources>

您可以按以下方式使用轉換器:

<TextBlock Margin="5,0,0,0" FontSize="20" Text="{Binding name, Converter ={StaticResource myConverter}}" />

有關如何實現轉換器的特定信息,請參見此處 您基本上可以對文本執行任何喜歡的操作。 我實際上喜歡Humanizer進行這些類型的文本轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM