对于条件样式,您必须使用数据绑定转换器。首先创建一个新类,如下所示。
public class StatusToColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var _status = value.ToString();
if (_status == "To Do")
return new SolidColorBrush(Windows.UI.Colors.Red);
else if (_status == "In Progress")
return new SolidColorBrush(Windows.UI.Colors.Yellow);
else if (_status == "Completed")
return new SolidColorBrush(Windows.UI.Colors.Green);
else
return new SolidColorBrush(Windows.UI.Colors.White);
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
现在,当您要使用时,将其添加为页面的资源,如下所示
<Page.Resources>
<local:StatusToColorConverter x:Key="StatusToColor"/>
</Page.Resources>
TextBlock
然后您必须在的前景属性中使用该转换器,该属性由Status
. 它将根据返回适当的颜色Status
。
您可以使用<Run />
将文本与绑定文本结合起来。
<TextBlock Name="txtStatus" Margin="10,2,0,0" Width="350" TextTrimming="WordEllipsis">
<Run Text="Status :" /> <Run Text="{Binding Status}" Foreground="{Binding Status, Converter={StaticResource StatusToColor}}"/>
</TextBlock>