我使用 IValueConverter 进行了如下操作:
创建了一个派生自 IValueConverter 的类 FontSizeConverter。Convert 方法将值加 10,ConvertBack 方法减 10。
public class FontSizeConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (double)value + 12.0;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (double)value - 12.0;
}
#endregion
}
接下来,我在控件的 XAML 模板中声明了此类的一个实例:
<Style.Resources>
<local:FontSizeConverter x:Key="fontSizeConverter"/>
</Style.Resources>
最后,FontSize 绑定使用此转换器应用于继承的 FontSize 属性:
<TextBlock FontSize="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=FontSize, Converter={StaticResource fontSizeConverter}}"
Grid.Row="0" Text="{Binding RelativeSource={RelativeSource TemplatedParent},
Path=Date.Day}" HorizontalAlignment="Right" VerticalAlignment="Top" Padding="2" Margin="2" >
</TextBlock>
这行得通。但我仍然不知道这是否是正确的答案。让我知道是否有更好的方法,或者这是否合适。