如何获取系统的隐藏式字幕字体大小?

How to get system's closed caption font size?

我想获取系统的隐藏式字幕字体样式,我参考了doc。到目前为止一切都很好,除了字体大小。

根据docClosedCaptionProperties.FontSize returns枚举ClosedCaptionSize,见代码

        switch (Windows.Media.ClosedCaptioning.ClosedCaptionProperties.FontSize)
        {
            case Windows.Media.ClosedCaptioning.ClosedCaptionSize.FiftyPercent:
                richtextblock.FontSize = 50;
                break;
            case Windows.Media.ClosedCaptioning.ClosedCaptionSize.OneHundredPercent:
                richtextblock.FontSize = 100;
                break;
            case Windows.Media.ClosedCaptioning.ClosedCaptionSize.OneHundredFiftyPercent:
                richtextblock.FontSize = 150;
                break;
            case Windows.Media.ClosedCaptioning.ClosedCaptionSize.TwoHundredPercent:
                richtextblock.FontSize = 200;
                break;
            default:
                richtextblock.FontSize = 100;
                break;
        }

我把FontSize设为相应的数字,虽然我知道是百分比。

最终结果与系统不同

那么这些枚举的确切 FontSize 是什么???

枚举没有给出具体数值,而是一个百分比。显然你也注意到了这一点。

百分比取决于参考值。一般来说,UWP最常见的默认字体大小是14,但是在MediaTransportControls中,默认字体大小通常是12。

所以Windows.Media.ClosedCaptioning.ClosedCaptionSize.OneHundredFiftyPercent应该是12*1.5=18.


更新

对不起,关于CC的字体大小,我需要进一步解释。

CC的大小受多种因素影响:

1.字幕文件本身的设置。

例如SRT文件支持字体设置。 <font color="red">{\fs25}表示FontSize为25,Foreground为红色的一行字幕。

2。受当前大小影响window

显示字幕的控件集成在TimedTextSourcePresenter(MediaPlayerElement 中的Grid)中。对于 TimedTextSourcePresenter,您可以将其视为 ViewBox。它会根据当前控件的大小缩放内部元素。

综上所述,MediaPlayerElement中的隐藏式字幕有一个基本字体大小,但这个字体大小不一定等于最终呈现的字体大小。

谢谢。