我有一个textBlock,它在text属性中包含一个日期。 现在,我想根据文本属性的星期几来设置该textBlock的前景色。
这可以完全在XAML中完成吗?
谢谢
答案 0 :(得分:2)
不是纯XAML
,您需要创建一个实现IValueConverter
的类,然后通过在您的XAML
中引用它,可以将TextBlock
颜色绑定到日期属性,它将通过转换器转换为Brush
。
有关ValueConverter
的更多信息,请点击此处:
https://www.codeproject.com/Tips/868163/%2FTips%2F868163%2FIValueConverter-Example-and-Usage-in-WPF
答案 1 :(得分:0)
现在,我想根据文本属性的星期几来设置该textBlock的前景色
纯xaml:
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="Text" Value="Monday"><!-- You will need to do this for every day of the week-->
<Setter Property="Foreground" Value="Green"/>
</Trigger>
</Style.Triggers>
</Style>
此外,如果您使用Runs
细分日期,则可以为运行分配样式,如下所示:
<TextBlock>
<Run Text="{Binding Today}"/>
<Run Text="{Binding Today.DayOfWeek, Mode=OneWay}"/><!-- This has to be one way as the Property DayOfWeek is readonly -->
</TextBlock>
然后在资源中使用此:
<Style TargetType="{x:Type Run}">
<Style.Triggers>
<Trigger Property="Text" Value="Friday">
<Setter Property="Foreground" Value="Green"/>
</Trigger>
</Style.Triggers>
</Style>