0

ツールチップでこのような複数の形式に ContentStringFormat を使用する方法はありますか?

ContentStringFormat="{}{0:N0}{0:P}"

<Slider.ToolTip> <ToolTip Content="{Binding Path=PlacementTarget.Value, RelativeSource={RelativeSource Mode=Self}}" ContentStringFormat="{}{0:N0}" /> </Slider.ToolTip>

これがその方法です。ContentStringFormat を次のように変更すると:

ContentStringFormat="{}{0:N0} {0:P}"

50% ではなく 505,000.00% と表示されます

前もって感謝します

4

2 に答える 2

2

ここには 3 つの問題があります。

  • 50 ではなく 505 と表示される場合、入力した数値は 5.05 ですが、0.505 のはずです。
  • 次に、0.505 を 50% として表示する場合は、最初に四捨五入する必要があります。
  • 最後に、使用する必要がありますP0

切り上げるために:

//code
public partial class MainWindow : Window
{
  public MainWindow()
  {
    InitializeComponent();
    DataContext = this;
  }

  private double MyActualNumber
  {
    get { return 0.505; }
  }

  public double Number
  {
    get { return System.Math.Round( 100.0 * MyActualNumber ) / 100.0; }
  }
}

//xaml
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Label Content="{Binding Path=Number}" ContentStringFormat="{}{0:P0}"/>
</Window>
于 2012-07-25T10:14:42.390 に答える
1

標準の数値形式 を使用する場合、Pまたはp表示される数値に最初に100を掛けてから、浮動小数点数のように末尾にパーセント記号を付けてフォーマットする場合。の直後の精度指定子。PたとえばP2、小数点以下の桁数を制御します。ここを参照してください。

したがって、の値0.5をformatでフォーマットP2すると、文字列「50.00%」になります。

あなたがしているように見えるのは、値50を数値(N0)として表示し、その後にパーセンテージ(P)を続けることです。結果は文字列「505,000.00%」になります(のデフォルトの精度Pは2であるため)。

于 2012-07-25T10:11:12.543 に答える