0

所以我有这个TextBlock

<TextBlock
    Text="{Binding Path=Value, ElementName=progressBarColumn, StringFormat={}{0:N2}%}"
    VerticalAlignment="Center"
    HorizontalAlignment="Center"
    Foreground="{DynamicResource ProgressBarForegroundColor}"
    FontFamily="{DynamicResource ProgressBarFontFamily}"
    FontSize="{DynamicResource ProgressBarFontSize}"/>

而且我希望能够控制String FormatN2N1等,所以我创建了这个:

<system:String x:Key="ProgressBarStringFormat">N2</system:String>

用法:

Text="{Binding Path=Value, ElementName=progressBarColumn, StringFormat={}{0:ProgressBarStringFormat}%}"

而在我Progress-Bar的而不是看到的Value我只看到ProgressBarStringFormat文字。

4

1 回答 1

0

除了 Binding 属性的文字外,您不能拥有任何东西。但是,如果您愿意使用 ContentControl 或 Label 而不是 TextBlock,则可以在其ContentStringFormat属性上粘贴 DynamicResource 或 Binding:

<Label
    Margin="0"
    Content="{Binding Value, ElementName=progressBarColumn}"
    ContentStringFormat="{DynamicResource ProgressBarStringFormat}"
    VerticalAlignment="Center"
    HorizontalAlignment="Center"
    Foreground="{DynamicResource ProgressBarForegroundColor}"
    TextElement.FontFamily="{DynamicResource ProgressBarFontFamily}"
    TextElement.FontSize="{DynamicResource ProgressBarFontSize}"
    />

我将 Margin 设置为零,因为 Label 将在其隐式样式中设置默认边距,这与 TextBlock 不同。

于 2017-09-30T01:48:36.490 回答