XAMLじゃなくてVBコードで
Bindingした数値の書式設定
数値が123.45で
表示小数点以下が要らないとき
123Binding.StringFormat = "0"
123Binding.StringFormat = "{0:0}"
数値の前や後ろに文字列を追加したいとき
文字列123Binding.StringFormat = "文字列{0:0}"
123文字列Binding.StringFormat = "{0:0}文字列"
字123字Binding.StringFormat = "字{0:0}字"
0のとき
一桁整数のとき
二桁整数のとき
マイナスの一桁
文字列と組み合わせたときのマイナス記号が表示される位置
{}を使わないと変な位置に付く
小数点
小数点
参照したところ
BindingBase.StringFormat プロパティ(System.Windows.Data)ありがとうございます!
https://msdn.microsoft.com/ja-jp/library/system.windows.data.bindingbase.stringformat(v=vs.110).aspx
Nine Works WPFのStringFormatによるフォーマット指定
http://nineworks2.blog.fc2.com/blog-entry-10.html
数字をBindingするときの書式指定|かに太郎、ただいま開発中
http://ameblo.jp/kani-tarou/entry-10202879097.html
標準の数値書式指定文字列
https://msdn.microsoft.com/ja-jp/library/dwhawy9k.aspx
標準の数値書式指定文字列
https://msdn.microsoft.com/ja-jp/library/dwhawy9k.aspx#GFormatString
VBコード
Class MainWindow
Private Sub MainWindow_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
Dim b As New Binding("Value") With {.Source = Slider1}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "0"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "0.0"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "0.000"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "00.000"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "000.000"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "##0.000"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "スライダーの値 = 0.000"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "スライダーの値 = {0:0.000}"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "スライダーの値 = {0.000}"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "{0:00.000}"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "{0:N3}"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "N3"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "P3"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "G20"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "G5"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "{0:G5}"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "{0:C}"}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "{0:C}",
.ConverterCulture = System.Globalization.CultureInfo.CurrentCulture}
Call SetTextBlock(b)
b = New Binding("Value") With {.Source = Slider1, .StringFormat = "{0:C2}",
.ConverterCulture = System.Globalization.CultureInfo.CurrentCulture}
Call SetTextBlock(b)
End Sub
Private Sub SetTextBlock(b As Binding)
Dim tb As New TextBlock
tb.SetBinding(TextBlock.TextProperty, b)
LeftPanel.Children.Add(tb)
'Dim str As String
'str = $"StringFormat = ""{b.StringFormat}"""
tb = New TextBlock With {.Text = b.StringFormat}
RightPanel.Children.Add(tb)
End Sub
End Class
XAML
1年ぶりくらいにWPFでのアプリ作成再開したけどすんごい忘れていてまた最初から調べなおしている感じ、また夏になったら完全に止まっちゃうからいつになったらできるかわかんないな
今くらいの気候が続いてくれたら最高なんだけどなあ