用重复文本完全填充 TextBlock

Completely fill a TextBlock with repeating text

我需要创建一个完全由重复文本填充的文本块。

字体大小也应更改,因此无论文本块大小如何,显示的字符数大致相同。

我有以下代码:

<TextBlock
    Name="Watermark"
    Background="White"
    FontSize="14"
    Foreground="DarkGray"
    TextWrapping="WrapWithOverflow" />

以及相关的代码隐藏:

// Really bad function...
void GenerateWatermarks()
{
    if (string.IsNullOrWhiteSpace(watermarkString))
    {
        return;
    }
    var builder = new StringBuilder();
    for(int i = 0; i < 50; i++)
    {
        builder.Append(watermarkString);
    }

    Watermark.Text = builder.ToString();
}

这是我想要得到的示例:

大量生成文本以适合整个文本块,但如果发生调整大小,文本和字体大小都会发生变化

尝试将 TextBlock 放入 Viewbox 中,并将 Stretch 设置为 FillUniformToFill

<Viewbox StretchDirection="Both" Stretch="Fill">
    <TextBlock
        Name="Watermark"
        Background="White"
        FontSize="14"
        Foreground="DarkGray"
        TextWrapping="WrapWithOverflow" 
        Width="480" Height="320"/>
</Viewbox>