1

我正在尝试定义许多样式元素可以引用的字体:

<System:String x:Key="FontFamilyDefault">Arial</System:String>
<System:Int32  x:Key="FontSizeDefault">18</System:Int32>
<SolidColorBrush x:Key="FontColourDefault" Color="Black"/>

我的风格通过以下方式引用它:

<Style TargetType="{x:Type Control}" x:Key="myStyle1">
    <Setter Property="FontSize" Value="{StaticResource FontSizeDefault}" />
    <Setter Property="FontFamily" Value="{StaticResource FontFamilyDefault}" />
    <Setter Property="Foreground" Value="{StaticResource FontColourDefault}" />
</Style>

并且控件引用了myStyle1:

<Style TargetType="TextBox" BasedOn="{StaticResource myStyle1}" />

我得到以下运行时异常: 无法将“System.String”类型的对象转换为“System.Windows.Media.FontFamily”。 如果我注释掉:

<Setter Property="FontFamily" Value="{StaticResource FontFamilyDefault}

然后在大小 conersion 上得到这个异常: Specified cast is not valid

谁能建议如何将字符串转换为 fontfamily 以及如何在 xaml 中指定字体大小?

提前致谢

4

1 回答 1

3

您可以使用 FontFamily 类型创建一个 StaticResource ..

<FontFamily x:Key="CockpitFont" >Verdana</FontFamily>
于 2012-07-27T13:02:05.923 回答