Windows手机:在同一个字符串中更改字体大小

时间:2014-10-18 18:41:26

标签: c# css xaml windows-phone-8

我有一个字符串属性,它将在我的应用程序的磁贴中显示为内容。我想做以下事情:在第一行'我希望以默认字体大小显示一些基本信息,但在第二行'这个字符串我希望显示2个值更大的字体大小...仍然这个字符串属性是一个......有没有办法实现这个? 提前谢谢!

2 个答案:

答案 0 :(得分:0)

在WP8恕我直言中,

<RichTextBox有点难以处理。但是只使用<TextBlock>转换器,您就可以轻松完成。

基本上使用带有相同字符串的Run并将其传递给您的Converter,它返回您要格式化的SubString(在您的情况下是您的行号的字符串)。

<!-- MyString is your Property, MyConverter is your Converter you programmed, ConverterParamter is the row_number that you want to pass to MyConver -->
<TextBlock x:Name="tb">
    <Run FontSize="12" Text="{Binding MyString, Converter={StaticResource MyConverter}, ConverterParameter=0}"/>
    <Run FontSize="24" Text="{Binding MyString, Converter={StaticResource MyConverter}, ConverterParameter=1}"/>                
</TextBlock>

// sample Converter of what you want to do
using System.Windows.Data;
public class MyConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        string return_string = "";
        int rowid = (int) parameter;
        switch (rowid)
        {
            case 0:
                return_string = "sub_string_row_0"; // calculate the substring for row 0
                break;
            case 1:
                return_string = "sub_string_row_1"; // calculate the substring for row 1
                break;
            default:
                break;
        }    
        return return_string;
    }

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

请记住在您的资源中定义您的转换器

<phone:PhoneApplicationPage.Resources>
    <converter:MyConverter x:Key="MyConverter"/>
</phone:PhoneApplicationPage.Resources>

<conveter:>

的位置
<phone:PhoneApplicationPage
    xmlns:converter="clr-namespace:YOUR_NAMESPACE_OF_YOUR_PROGRAM">

答案 1 :(得分:0)

如果你创建3个额外的属性,每个属性都会返回“main”字符串的一部分,那将会容易得多。

例如:

public string PartOne { get { return myString.SubString(0, 3); }}