WPF 文本 StringFormat 作为 DynamicResource
WPF text StringFormat as DynamicResource
所以我有这个 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 Format
从 N2
到 N1
等等,所以我创建了这个:
<system:String x:Key="ProgressBarStringFormat">N2</system:String>
用法:
Text="{Binding Path=Value, ElementName=progressBarColumn, StringFormat={}{0:ProgressBarStringFormat}%}"
在我的 Progress-Bar
中,我只看到 ProgressBarStringFormat
文本,而不是 Value
。
除了绑定的 属性 的文字外,您不能拥有任何东西。但是,如果您愿意使用 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}"
/>
我将边距设置为零,因为 Label 将在其隐式样式中设置默认边距,这与 TextBlock 不同。
所以我有这个 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 Format
从 N2
到 N1
等等,所以我创建了这个:
<system:String x:Key="ProgressBarStringFormat">N2</system:String>
用法:
Text="{Binding Path=Value, ElementName=progressBarColumn, StringFormat={}{0:ProgressBarStringFormat}%}"
在我的 Progress-Bar
中,我只看到 ProgressBarStringFormat
文本,而不是 Value
。
除了绑定的 属性 的文字外,您不能拥有任何东西。但是,如果您愿意使用 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}"
/>
我将边距设置为零,因为 Label 将在其隐式样式中设置默认边距,这与 TextBlock 不同。