You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP XAML中如何自定义格式化TimeSpan(仅显示时分)?

解决UWP XAML中TimeSpanFormatConverter的ConverterParameter反斜杠丢失问题

我之前也踩过这个坑!在UWP的XAML里传递带反斜杠的TimeSpan格式字符串时,直接写h\:mm肯定会丢反斜杠——因为XAML会自动解析转义字符,单个反斜杠会被当作转义标记吃掉。这里给你两个靠谱的解决方案:

方案1:使用双重反斜杠转义

把格式字符串里的单个反斜杠换成两个反斜杠,这样XAML解析的时候会把\\转换成单个\,最终传到转换器里的就是正确的h\:mm格式。

对应的XAML代码示例:

<TextBlock 
    Text="{Binding YourTimeSpanProperty, 
           Converter={StaticResource TimeSpanFormatConverter}, 
           ConverterParameter='h\\:mm'}" />

方案2:使用XML实体替代反斜杠

如果你不习惯写双重反斜杠,也可以用XML实体&#92;来表示反斜杠。XAML解析时会自动把这个实体转换成\,效果和方案1完全一致。

对应的XAML代码示例:

<TextBlock 
    Text="{Binding YourTimeSpanProperty, 
           Converter={StaticResource TimeSpanFormatConverter}, 
           ConverterParameter='h&#92;:mm'}" />

补充:转换器的核心代码验证

确保你的TimeSpanFormatConverter里的Convert方法能正确接收格式字符串,比如:

public object Convert(object value, Type targetType, object parameter, string language)
{
    if (value is TimeSpan timeSpan && parameter is string format)
    {
        return timeSpan.ToString(format);
    }
    // 处理异常或默认情况
    return value?.ToString() ?? string.Empty;
}

这样设置后,就能正确把TimeSpan格式化成仅显示小时和分钟的样式啦~

内容的提问来源于stack exchange,提问作者Michael Kintscher they-them

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:07:59