<ComboBox x:Name="theComboBox">
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem Content="Use Default Font"/>
<CollectionContainer Collection="{Binding Source={x:Static onts.SystemFontFamilies}}"/>
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
<TextBlock Text="Text in selected font" FontFamily="{Binding ElementName=theComboBox, Path=SelectedItem}" />
我将文本块的fontfamily绑定到组合框中选择的字体。它工作正常。但是我希望当用户点击"use default font"时,fontfamily of textblock变成这样:
FontFamily={StaticResource Great} //Great.ttf is an embedded font in my project
发布于 2019-05-31 18:13:11
分配combobox的SelectionChanged事件以调用一个方法,在该方法中,如果所选的项是所需的项(yourItem),则检查是否将文本块的FontFamily设置为所需的项(YourFont)。
<ComboBox x:Name="theComboBox" SelectionChanged="ComboBox_SelectionChanged">
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem Content="Use Default Font"/>
<CollectionContainer Collection="{Binding Source={x:Static onts.SystemFontFamilies}}"/>
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
<TextBlock x:Name="myTextblock" Text="Text in selected font" FontFamily="{Binding ElementName=theComboBox, Path=SelectedItem}" />
和,
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (theComboBox.SelectedItem = yourItem)
{
myTextBlock.FontFamily = YourFont;
}
}
发布于 2019-05-31 18:13:57
您可以设置绑定的FallbackValue
属性:
<TextBlock Text="Text in selected font" FontFamily="{Binding ElementName=theComboBox,
Path=SelectedItem, FallbackValue={StaticResource Great}}" />
https://stackoverflow.com/questions/56384553
复制相似问题