如何通过绑定(MVVM)设置TextBlock的FontStyle

时间:2018-07-06 10:23:24

标签: c# wpf xaml

我的XAML代码片段

<TextBlock Text="{Binding Name}" Foreground="{Binding FontColor}" FontStyle="{Binding FontStyleTreeItem}"/>

剪切的代码类TreeItem:

public System.Windows.FontStyles FontStyleTreeItem {get;set}

我想为属性“ FontStyleTreeItem”分配类似的内容:

treeItem.FontStyleTreeItem = System.Windows.FontStyles.Italic;

但是这不起作用,因为“ System.Windows.FontStyles”是静态的。但是我不知道如何提供一个好的解决方案来设置上述属性。

我还尝试将属性设置为FontStyle,因此最后没有 s (FontStyle s ),但是文本块的字体样式却没有改变。

public FontStyle FontStyleTreeItem { get { return FontStyle.Italic; } }

有人可以看到我想念的东西吗?

已经感谢。

1 个答案:

答案 0 :(得分:1)

属性的类型应为System.Windows.FontStyle。它可能仍会返回静态值,例如FontStyles.Italic

public System.Windows.FontStyle FontStyleTreeItem { get { return System.Windows.FontStyles.Italic; } }

如果您这样定义属性:

public System.Windows.FontStyle FontStyleTreeItem { get; set; }

...您可以将其设置为任何FontStyle值,例如:

FontStyleTreeItem = FontStyles.Italic;

如果在运行时动态设置它,则需要实现INotifyPropertyChanged接口以更改字体样式。

相关问题