将FontStyles和FontWeights绑定到WPF ComboBox

Hae*_*bin 8 .net wpf binding combobox styles

我只是想知道是否可以将可用的FontStyles和FontWeights 列表绑定到一个ComboBox

例如,要将字体列表绑定到组合框,您可以使用:

FontComboBox.ItemsSource = Fonts.SystemFontFamilies;
Run Code Online (Sandbox Code Playgroud)

我还可以为:

FontStyleComboBox.ItemsSource = .... 
FontWeightComboBox.ItemsSource = ....  ?
Run Code Online (Sandbox Code Playgroud)

是否需要对类System.Windows.FontWeightsSystem.Windows.FontStyles类进行反思,还是会有更简单的方法?

谢谢

Avi*_* P. 11

对于字体系列组合:

<ComboBox Name="Families" ItemsSource="{x:Static Fonts.SystemFontFamilies}"/>
Run Code Online (Sandbox Code Playgroud)

对于字体样式:

<ComboBox Name="Styles">
    <x:Static Member="FontStyles.Normal"/>
    <x:Static Member="FontStyles.Italic"/>
    <x:Static Member="FontStyles.Oblique"/>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)

而对于字体权重:

<ComboBox Name="Weights">
    <x:Static Member="FontWeights.Black"/>
    <x:Static Member="FontWeights.Bold"/>
    <x:Static Member="FontWeights.DemiBold"/>
    <x:Static Member="FontWeights.ExtraBlack"/>
    <x:Static Member="FontWeights.ExtraBold"/>
    <x:Static Member="FontWeights.ExtraLight"/>
    <x:Static Member="FontWeights.Heavy"/>
    <x:Static Member="FontWeights.Light"/>
    <x:Static Member="FontWeights.Medium"/>
    <x:Static Member="FontWeights.Normal"/>
    <x:Static Member="FontWeights.Regular"/>
    <x:Static Member="FontWeights.SemiBold"/>
    <x:Static Member="FontWeights.Thin"/>
    <x:Static Member="FontWeights.UltraBlack"/>
    <x:Static Member="FontWeights.UltraBold"/>
    <x:Static Member="FontWeights.UltraLight"/>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)

现在要测试:

<TextBlock 
    Text="This is some text." 
    FontFamily="{Binding ElementName=Families, Path=SelectedItem}" 
    FontStyle="{Binding ElementName=Styles, Path=SelectedItem}" 
    FontWeight="{Binding ElementName=Weights, Path=SelectedItem}"/>
Run Code Online (Sandbox Code Playgroud)