Bindingした数値の書式設定
SliderのValuePropertyはDouble型、これを各TextBlockのTextPropertyにBindingして表示するときの書式設定の例
数値が123.45で
表示 小数点以下が要らないとき
123 Binding.StringFormat = "0"
123 Binding.StringFormat = "{0:0}"
数値の前や後ろに文字列を追加したいとき
文字列123 Binding.StringFormat = "文字列{0:0}"
123文字列 Binding.StringFormat = "{0:0}文字列"
字123字 Binding.StringFormat = "字{0:0}字"
0のとき
一桁整数のとき
マイナスの一桁
文字列と組み合わせたときのマイナス記号が表示される位置
{}を使わないと変な位置に付く
小数点
小数点
参照したところ
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)
tb = New TextBlock With {.Text = b.StringFormat}
RightPanel.Children.Add(tb)
End Sub
End Class
ヤフーブログのかんたんモードだと
XAMLのコードは投稿できないから画像で
文字列の値をBindingして表示するときに別の文字列を付け足すときは{0}
1年ぶりくらいに
WPFでのアプリ作成再開したけどすんごい忘れていてまた最初から調べなおしている感じ、また夏になったら完全に止まっちゃうからいつになったらできるかわかんないな
今くらいの気候が続いてくれたら最高なんだけどなあ