silverlight 格式转换

http://www.dotblogs.com.tw/ouch1978/archive/2011/05/04/sl-binding-with-stringformat.aspx

 

http://blog.csdn.net/seelingzheng/article/details/7711438

 

Silverlight]使用StringFormat設定Binding資料的顯示格式

在WPF中,TextBlock可以透過Binding的StringFormat屬性來設定資料的顯示格式,而其他的許多控制項也可以透過ContentStringFormat、HeaderStringFormat等等屬性來設定資料的顯示格式,那Silverlight呢?

這個時候,就有一個好消息和一個壞消息要和大家分享了,好消息是:Silverlight 4.0之後就可以和WPF一樣在Binding時使用StringFormat屬性來設定資料的顯示格式;壞消息則是Silverlight的控制項並不提供像WPF的ContentStringFormat等相關屬性可供設定(而且目前手邊的5.0 Beta版也沒有)。

這次就直接來看範例吧(請原諒我的懶惰,這次的範例是以WPF版的範例為基礎修改的):

XAML檔內容如下:

MainPage.xaml

      
      
  1. <UserControl x:Class="SL_BindingWithStringFormat.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  3. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:system="clr-namespace:System;assembly=mscorlib"
  4. xmlns:Theme="clr-namespace:System.Windows.Controls.Theming;assembly=System.Windows.Controls.Theming.ExpressionDark"
  5. xmlns:toolkit="clr-namespace:Microsoft.Windows;assembly=System.Windows.Controls.Toolkit" mc:Ignorable="d" d:DesignHeight="600"
  6. d:DesignWidth="700" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" Background="White">
  7. <Theme:ExpressionDarkTheme Background="{x:Null}">
  8. <Border BorderThickness="2" BorderBrush="#FF646464" CornerRadius="10" Background="White" Margin="10">
  9. <Border.Effect>
  10. <DropShadowEffect />
  11. </Border.Effect>
  12. <Grid Margin="2,-2,-2,2">
  13. <Grid.RowDefinitions>
  14. <RowDefinition Height="Auto" />
  15. <RowDefinition />
  16. <RowDefinition />
  17. <RowDefinition />
  18. </Grid.RowDefinitions>
  19. <TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" Text="Silverlight StringFormat 範例" FontSize="24"
  20. VerticalAlignment="Center" Margin="5,10" Foreground="#FF646464" FontWeight="Bold" FontFamily="Microsoft JhengHei" />
  21. <Rectangle Fill="#FF646464" Height="2" VerticalAlignment="Bottom" Margin="20,0" />
  22. <Viewbox Grid.Row="1" Margin="0,10,20,10" HorizontalAlignment="Right" VerticalAlignment="Center" Opacity="0.2" d:IsLocked="True">
  23. <TextBlock TextWrapping="Wrap" Text="一般字串格式" FontSize="21.333" Foreground="#FF646464" FontWeight="Bold" FontStyle="Italic"
  24. FontFamily="Microsoft JhengHei" />
  25. </Viewbox>
  26. <Viewbox Margin="0,10,20,10" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center" Opacity="0.2" d:IsLocked="True">
  27. <TextBlock TextWrapping="Wrap" Text="數字格式" FontSize="21.333" Foreground="#FF646464" FontStyle="Italic" FontWeight="Bold"
  28. FontFamily="Microsoft JhengHei" />
  29. </Viewbox>
  30. <Viewbox Grid.Row="3" Margin="0,10,20,10" HorizontalAlignment="Right" VerticalAlignment="Center" Opacity="0.2" d:IsLocked="True">
  31. <TextBlock TextWrapping="Wrap" Text="日期格式" FontSize="21.333" Foreground="#FF646464" FontStyle="Italic" FontWeight="Bold"
  32. FontFamily="Microsoft JhengHei" />
  33. </Viewbox>
  34. <Grid Grid.Row="1" Margin="20,10">
  35. <Grid.ColumnDefinitions>
  36. <ColumnDefinition Width="Auto" />
  37. <ColumnDefinition />
  38. <ColumnDefinition />
  39. <ColumnDefinition />
  40. <ColumnDefinition />
  41. </Grid.ColumnDefinitions>
  42. <Grid.RowDefinitions>
  43. <RowDefinition Height="Auto" />
  44. <RowDefinition />
  45. <RowDefinition />
  46. <RowDefinition />
  47. </Grid.RowDefinitions>
  48. <StackPanel HorizontalAlignment="Left" Orientation="Horizontal" Grid.ColumnSpan="10" Margin="0,0,0,20" d:LayoutOverrides="GridBox">
  49. <TextBlock TextWrapping="Wrap" Text="請在文字方塊中輸入文字:" VerticalAlignment="Center" FontFamily="Microsoft JhengHei" FontSize="16"
  50. Foreground="Black" />
  51. <TextBox x:Name="txtTextBox1" TextWrapping="Wrap" VerticalAlignment="Center" MinWidth="250" FontFamily="Microsoft JhengHei"
  52. FontSize="14.667" Background="#7F323232" Text="我是範例" />
  53. </StackPanel>
  54. <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="1" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
  55. Text="說明" Foreground="Black" />
  56. <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  57. FontFamily="Microsoft JhengHei" Text="加入特定文字" Foreground="Black" />
  58. <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  59. FontFamily="Microsoft JhengHei" Text="左右加上括弧" Foreground="Black" />
  60. <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  61. FontFamily="Microsoft JhengHei" Text="左邊加上空白" Foreground="Black" />
  62. <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  63. FontFamily="Microsoft JhengHei" Text="右邊加上空白" Foreground="Black" />
  64. <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="2" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
  65. Text="StringFormat" Foreground="Black" />
  66. <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  67. FontFamily="Microsoft JhengHei" Text="您輸入的是:&quot;{0}&quot;" Foreground="Black" />
  68. <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  69. FontFamily="Microsoft JhengHei" Text="({0})" Foreground="Black" />
  70. <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  71. FontFamily="Microsoft JhengHei" Text="{}{0,15}" Foreground="Black" />
  72. <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  73. FontFamily="Microsoft JhengHei" Text="{}{0,-15}" Foreground="Black" />
  74. <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="3" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
  75. Text="結果" Foreground="Black" />
  76. <Border Grid.Column="1" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  77. CornerRadius="3" Padding="3">
  78. <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
  79. Text="{Binding Text, ElementName=txtTextBox1, StringFormat=您輸入的是:\&quot;\{0\}\&quot;}" Foreground="Black" />
  80. </Border>
  81. <Border Grid.Column="2" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  82. CornerRadius="3" Padding="3">
  83. <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
  84. Text="{Binding Text, ElementName=txtTextBox1, StringFormat=(\{0\})}" Foreground="Black" />
  85. </Border>
  86. <Border Grid.Column="3" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  87. CornerRadius="3" Padding="3">
  88. <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
  89. Text="{Binding Text, ElementName=txtTextBox1, StringFormat=\{0\,15\}}" Foreground="Black" />
  90. </Border>
  91. <Border Grid.Column="4" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  92. CornerRadius="3" Padding="3">
  93. <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
  94. Text="{Binding Text, ElementName=txtTextBox1, StringFormat=\{0\,-15\}}" Foreground="Black" />
  95. </Border>
  96. </Grid>
  97. <Rectangle Fill="#FF646464" Height="2" VerticalAlignment="Bottom" Margin="20,0" Grid.Row="1" Opacity="0.5" />
  98. <Grid Grid.Row="2" Margin="10" d:IsLocked="True" />
  99. <Rectangle Fill="#FF646464" Height="2" VerticalAlignment="Bottom" Margin="20,0" Grid.Row="2" Opacity="0.5" />
  100. <Grid Grid.Row="3" Margin="10,10,10,0" d:IsLocked="True" Height="116" VerticalAlignment="Top" />
  101. <Grid Grid.Row="3" Margin="10,0,10,10" d:IsLocked="True" Height="116" VerticalAlignment="Bottom" />
  102. <Grid Grid.Row="2" Margin="20,10">
  103. <Grid.ColumnDefinitions>
  104. <ColumnDefinition Width="Auto" />
  105. <ColumnDefinition />
  106. <ColumnDefinition />
  107. <ColumnDefinition />
  108. <ColumnDefinition />
  109. </Grid.ColumnDefinitions>
  110. <Grid.RowDefinitions>
  111. <RowDefinition Height="Auto" />
  112. <RowDefinition />
  113. <RowDefinition />
  114. <RowDefinition />
  115. </Grid.RowDefinitions>
  116. <StackPanel HorizontalAlignment="Left" Orientation="Horizontal" d:LayoutOverrides="GridBox" Grid.ColumnSpan="10">
  117. <TextBlock TextWrapping="Wrap" Text="請移動滑桿:" VerticalAlignment="Center" FontFamily="Microsoft JhengHei" FontSize="16"
  118. Foreground="Black" />
  119. <Slider x:Name="sldSlider2" VerticalAlignment="Center" MinWidth="300" Minimum="-10" Maximum="10" Value="3.2" />
  120. </StackPanel>
  121. <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="1" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
  122. Text="說明" Foreground="Black" />
  123. <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  124. FontFamily="Microsoft JhengHei" Text="以貨幣格式顯示" Foreground="Black" />
  125. <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  126. FontFamily="Microsoft JhengHei" Text="以百分比顯示" Foreground="Black" />
  127. <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  128. FontFamily="Microsoft JhengHei" Text="使用自訂格式" Foreground="Black" />
  129. <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  130. FontFamily="Microsoft JhengHei" Text="使用無小數點的百分比顯示" Foreground="Black" />
  131. <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="2" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
  132. Text="StringFormat" Foreground="Black" />
  133. <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  134. FontFamily="Microsoft JhengHei" Text="C" Foreground="Black" />
  135. <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  136. FontFamily="Microsoft JhengHei" Text="P" Foreground="Black" />
  137. <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  138. FontFamily="Microsoft JhengHei" Text="00.00" Foreground="Black" />
  139. <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  140. FontFamily="Microsoft JhengHei" Text="P0" Foreground="Black" />
  141. <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="3" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
  142. Text="結果" Foreground="Black" />
  143. <Border Grid.Column="1" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  144. CornerRadius="3" Padding="3">
  145. <TextBlock TextWrapping="Wrap" Language="zh-TW" FontFamily="Microsoft JhengHei"
  146. Text="{Binding Value, ElementName=sldSlider2, StringFormat=C}" Foreground="Black" />
  147. </Border>
  148. <Border Grid.Column="2" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  149. CornerRadius="3" Padding="3">
  150. <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei" Text="{Binding Value, ElementName=sldSlider2, StringFormat=P}"
  151. Foreground="Black" />
  152. </Border>
  153. <Border Grid.Column="3" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  154. CornerRadius="3" Padding="3">
  155. <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
  156. Text="{Binding Value, ElementName=sldSlider2, StringFormat=00.00}" Foreground="Black" />
  157. </Border>
  158. <Border Grid.Column="4" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  159. CornerRadius="3" Padding="3">
  160. <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei" Text="{Binding Value, ElementName=sldSlider2, StringFormat=P0}"
  161. Foreground="Black" />
  162. </Border>
  163. </Grid>
  164. <Grid Grid.Row="3" Margin="20,10">
  165. <Grid.ColumnDefinitions>
  166. <ColumnDefinition Width="Auto" />
  167. <ColumnDefinition />
  168. <ColumnDefinition />
  169. <ColumnDefinition />
  170. <ColumnDefinition />
  171. </Grid.ColumnDefinitions>
  172. <Grid.RowDefinitions>
  173. <RowDefinition Height="Auto" />
  174. <RowDefinition />
  175. <RowDefinition />
  176. <RowDefinition />
  177. </Grid.RowDefinitions>
  178. <StackPanel HorizontalAlignment="Left" Orientation="Horizontal" d:LayoutOverrides="GridBox" Grid.ColumnSpan="10">
  179. <TextBlock TextWrapping="Wrap" Text="請選擇日期:" VerticalAlignment="Center" FontFamily="Microsoft JhengHei" FontSize="16"
  180. Foreground="Black" />
  181. <sdk:DatePicker Name="dtDatePicker1" VerticalAlignment="Center" MinWidth="200" Padding="10,3,0,0" />
  182. </StackPanel>
  183. <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="1" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
  184. Text="說明" Foreground="Black" />
  185. <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  186. FontFamily="Microsoft JhengHei" Text="以月(文字) 日, 年 西元 顯示" Foreground="Black" />
  187. <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  188. FontFamily="Microsoft JhengHei" Text="以預設長時間格式顯示" Foreground="Black" />
  189. <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  190. FontFamily="Microsoft JhengHei" Text="以年/月/日顯示" Foreground="Black" />
  191. <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  192. FontFamily="Microsoft JhengHei" Text="以月,年顯示" Foreground="Black" />
  193. <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="2" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
  194. Text="StringFormat" Foreground="Black" />
  195. <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  196. FontFamily="Microsoft JhengHei" Text="MMMM dd, yyyy g" Foreground="Black" />
  197. <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  198. FontFamily="Microsoft JhengHei" Text="G" Foreground="Black" />
  199. <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  200. FontFamily="Microsoft JhengHei" Text="yyyy/MM/dd" Foreground="Black" />
  201. <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
  202. FontFamily="Microsoft JhengHei" Text="Y" Foreground="Black" />
  203. <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="3" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
  204. Text="結果" Foreground="Black" />
  205. <Border Grid.Column="1" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  206. CornerRadius="3" Padding="3">
  207. <TextBlock TextWrapping="Wrap" Language="zh-TW" FontFamily="Microsoft JhengHei"
  208. Text="{Binding SelectedDate, ElementName=dtDatePicker1}" Foreground="Black" />
  209. </Border>
  210. <Border Grid.Column="2" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  211. CornerRadius="3" Padding="3">
  212. <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
  213. Text="{Binding SelectedDate, ElementName=dtDatePicker1, StringFormat=G}" Foreground="Black" />
  214. </Border>
  215. <Border Grid.Column="3" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  216. CornerRadius="3" Padding="3">
  217. <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
  218. Text="{Binding SelectedDate, ElementName=dtDatePicker1, StringFormat=yyyy/MM/dd}" Foreground="Black" />
  219. </Border>
  220. <Border Grid.Column="4" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
  221. CornerRadius="3" Padding="3">
  222. <TextBlock TextWrapping="Wrap" Language="zh-TW" FontFamily="Microsoft JhengHei"
  223. Text="{Binding SelectedDate, ElementName=dtDatePicker1, StringFormat=Y}" Foreground="Black" />
  224. </Border>
  225. </Grid>
  226. </Grid>
  227. </Border>
  228. </Theme:ExpressionDarkTheme>
  229. </UserControl>

<UserControl x:Class="SL_BindingWithStringFormat.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:system="clr-namespace:System;assembly=mscorlib"
        xmlns:Theme="clr-namespace:System.Windows.Controls.Theming;assembly=System.Windows.Controls.Theming.ExpressionDark"
        xmlns:toolkit="clr-namespace:Microsoft.Windows;assembly=System.Windows.Controls.Toolkit" mc:Ignorable="d" d:DesignHeight="600"
        d:DesignWidth="700" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" Background="White">
    <Theme:ExpressionDarkTheme Background="{x:Null}">
        <Border BorderThickness="2" BorderBrush="#FF646464" CornerRadius="10" Background="White" Margin="10">
            <Border.Effect>
                <DropShadowEffect />
            </Border.Effect>
            <Grid Margin="2,-2,-2,2">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition />
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" Text="Silverlight StringFormat 範例" FontSize="24"
                        VerticalAlignment="Center" Margin="5,10" Foreground="#FF646464" FontWeight="Bold" FontFamily="Microsoft JhengHei" />
                <Rectangle Fill="#FF646464" Height="2" VerticalAlignment="Bottom" Margin="20,0" />
                <Viewbox Grid.Row="1" Margin="0,10,20,10" HorizontalAlignment="Right" VerticalAlignment="Center" Opacity="0.2" d:IsLocked="True">
                    <TextBlock TextWrapping="Wrap" Text="一般字串格式" FontSize="21.333" Foreground="#FF646464" FontWeight="Bold" FontStyle="Italic"
                            FontFamily="Microsoft JhengHei" />
                </Viewbox>
                <Viewbox Margin="0,10,20,10" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center" Opacity="0.2" d:IsLocked="True">
                    <TextBlock TextWrapping="Wrap" Text="數字格式" FontSize="21.333" Foreground="#FF646464" FontStyle="Italic" FontWeight="Bold"
                            FontFamily="Microsoft JhengHei" />
                </Viewbox>
                <Viewbox Grid.Row="3" Margin="0,10,20,10" HorizontalAlignment="Right" VerticalAlignment="Center" Opacity="0.2" d:IsLocked="True">
                    <TextBlock TextWrapping="Wrap" Text="日期格式" FontSize="21.333" Foreground="#FF646464" FontStyle="Italic" FontWeight="Bold"
                            FontFamily="Microsoft JhengHei" />
                </Viewbox>
                <Grid Grid.Row="1" Margin="20,10">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <StackPanel HorizontalAlignment="Left" Orientation="Horizontal" Grid.ColumnSpan="10" Margin="0,0,0,20" d:LayoutOverrides="GridBox">
                        <TextBlock TextWrapping="Wrap" Text="請在文字方塊中輸入文字:" VerticalAlignment="Center" FontFamily="Microsoft JhengHei" FontSize="16"
                                Foreground="Black" />
                        <TextBox x:Name="txtTextBox1" TextWrapping="Wrap" VerticalAlignment="Center" MinWidth="250" FontFamily="Microsoft JhengHei"
                                FontSize="14.667" Background="#7F323232" Text="我是範例" />
                    </StackPanel>
                    <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="1" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
                            Text="說明" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="加入特定文字" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="左右加上括弧" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="左邊加上空白" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="右邊加上空白" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="2" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
                            Text="StringFormat" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="您輸入的是:&quot;{0}&quot;" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="({0})" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="{}{0,15}" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="{}{0,-15}" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="3" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
                            Text="結果" Foreground="Black" />
                    <Border Grid.Column="1" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
                                Text="{Binding Text, ElementName=txtTextBox1, StringFormat=您輸入的是:\&quot;\{0\}\&quot;}" Foreground="Black" />
                    </Border>
                    <Border Grid.Column="2" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
                                Text="{Binding Text, ElementName=txtTextBox1, StringFormat=(\{0\})}" Foreground="Black" />
                    </Border>
                    <Border Grid.Column="3" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
                                Text="{Binding Text, ElementName=txtTextBox1, StringFormat=\{0\,15\}}" Foreground="Black" />
                    </Border>
                    <Border Grid.Column="4" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
                                Text="{Binding Text, ElementName=txtTextBox1, StringFormat=\{0\,-15\}}" Foreground="Black" />
                    </Border>
                </Grid>
                <Rectangle Fill="#FF646464" Height="2" VerticalAlignment="Bottom" Margin="20,0" Grid.Row="1" Opacity="0.5" />
                <Grid Grid.Row="2" Margin="10" d:IsLocked="True" />
                <Rectangle Fill="#FF646464" Height="2" VerticalAlignment="Bottom" Margin="20,0" Grid.Row="2" Opacity="0.5" />
                <Grid Grid.Row="3" Margin="10,10,10,0" d:IsLocked="True" Height="116" VerticalAlignment="Top" />
                <Grid Grid.Row="3" Margin="10,0,10,10" d:IsLocked="True" Height="116" VerticalAlignment="Bottom" />
                <Grid Grid.Row="2" Margin="20,10">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <StackPanel HorizontalAlignment="Left" Orientation="Horizontal" d:LayoutOverrides="GridBox" Grid.ColumnSpan="10">
                        <TextBlock TextWrapping="Wrap" Text="請移動滑桿:" VerticalAlignment="Center" FontFamily="Microsoft JhengHei" FontSize="16"
                                Foreground="Black" />
                        <Slider x:Name="sldSlider2" VerticalAlignment="Center" MinWidth="300" Minimum="-10" Maximum="10" Value="3.2" />
                    </StackPanel>
                    <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="1" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
                            Text="說明" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="以貨幣格式顯示" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="以百分比顯示" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="使用自訂格式" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="使用無小數點的百分比顯示" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="2" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
                            Text="StringFormat" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="C" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="P" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="00.00" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="P0" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="3" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
                            Text="結果" Foreground="Black" />
                    <Border Grid.Column="1" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" Language="zh-TW" FontFamily="Microsoft JhengHei"
                                Text="{Binding Value, ElementName=sldSlider2, StringFormat=C}" Foreground="Black" />
                    </Border>
                    <Border Grid.Column="2" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei" Text="{Binding Value, ElementName=sldSlider2, StringFormat=P}"
                                Foreground="Black" />
                    </Border>
                    <Border Grid.Column="3" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
                                Text="{Binding Value, ElementName=sldSlider2, StringFormat=00.00}" Foreground="Black" />
                    </Border>
                    <Border Grid.Column="4" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei" Text="{Binding Value, ElementName=sldSlider2, StringFormat=P0}"
                                Foreground="Black" />
                    </Border>
                </Grid>
                <Grid Grid.Row="3" Margin="20,10">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <StackPanel HorizontalAlignment="Left" Orientation="Horizontal" d:LayoutOverrides="GridBox" Grid.ColumnSpan="10">
                        <TextBlock TextWrapping="Wrap" Text="請選擇日期:" VerticalAlignment="Center" FontFamily="Microsoft JhengHei" FontSize="16"
                                Foreground="Black" />
                        <sdk:DatePicker Name="dtDatePicker1" VerticalAlignment="Center" MinWidth="200" Padding="10,3,0,0" />
                    </StackPanel>
                    <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="1" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
                            Text="說明" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="以月(文字) 日, 年 西元 顯示" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="以預設長時間格式顯示" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="以年/月/日顯示" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="以月,年顯示" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="2" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
                            Text="StringFormat" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="MMMM dd, yyyy g" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="G" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="3" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="yyyy/MM/dd" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" Grid.Column="4" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Bottom"
                            FontFamily="Microsoft JhengHei" Text="Y" Foreground="Black" />
                    <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom" Grid.Row="3" HorizontalAlignment="Right" FontFamily="Microsoft JhengHei"
                            Text="結果" Foreground="Black" />
                    <Border Grid.Column="1" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" Language="zh-TW" FontFamily="Microsoft JhengHei"
                                Text="{Binding SelectedDate, ElementName=dtDatePicker1}" Foreground="Black" />
                    </Border>
                    <Border Grid.Column="2" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
                                Text="{Binding SelectedDate, ElementName=dtDatePicker1, StringFormat=G}" Foreground="Black" />
                    </Border>
                    <Border Grid.Column="3" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" FontFamily="Microsoft JhengHei"
                                Text="{Binding SelectedDate, ElementName=dtDatePicker1, StringFormat=yyyy/MM/dd}" Foreground="Black" />
                    </Border>
                    <Border Grid.Column="4" HorizontalAlignment="Right" Grid.Row="3" VerticalAlignment="Bottom" Background="#7FFFFF00"
                            CornerRadius="3" Padding="3">
                        <TextBlock TextWrapping="Wrap" Language="zh-TW" FontFamily="Microsoft JhengHei"
                                Text="{Binding SelectedDate, ElementName=dtDatePicker1, StringFormat=Y}" Foreground="Black" />
                    </Border>
                </Grid>
            </Grid>
        </Border>
    </Theme:ExpressionDarkTheme>
</UserControl>

雖然只能透過Binding來設定StringFormat屬性,不過在Silverlight中,還是可以透過控制項的Language屬性來達到當地化語系顯示的效果;而WPF中的HeaderStringFormat等等屬性,在Silverlight中也可以透過修改控制項的Template來達成一樣的效果,還是很方便的啦!!

如果需要參考和StringFormat相關的用法,可以參考以下MSDN連結:

Formatting Types

Composite Formatting

Standard Date and Time Format Strings

Custom Date and Time Format Strings

Standard Numeric Format Strings

Custom Numeric Format Strings

Enumeration Format Strings

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值