目前我正在使用fontsize资源
<sys:Double x:Key="FontSize13">13</sys:Double>
<sys:Double x:Key="FontSize12">12</sys:Double>
<sys:Double x:Key="FontSize11">11</sys:Double>
Run Code Online (Sandbox Code Playgroud)
并使用as
<Setter Property="FontSize"
Value="{DynamicResource FontSize13}" />
Run Code Online (Sandbox Code Playgroud)
如何将FontSize设置为10pt而不是像素?
类型转换在编译时由XAML编译器发生,特别是响应于属性的FontSizeConverter存在,FontSize因此我们在使转换器运行时遇到基本问题.但是我们可以创建一个帮助标记扩展来完成这项工作.
这是XAML的样子:
<Grid>
<Grid.Resources>
<local:FontSize Size="20" x:Key="TwentyPixels"/>
<local:FontSize Size="11pt" x:Key="ElevenPoint"/>
</Grid.Resources>
<StackPanel>
<TextBlock Text="Sample text" FontSize="{StaticResource TwentyPixels}"/>
<TextBlock Text="Sample text" FontSize="{StaticResource ElevenPoint}"/>
</StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)
这是标记扩展:
public class FontSizeExtension : MarkupExtension
{
[TypeConverter(typeof(FontSizeConverter))]
public double Size { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
return Size;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5818 次 |
| 最近记录: |