silverlight 格式转换

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

 

http://blog.youkuaiyun.com/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

 

内容概要:该论文研究增程式电动汽车(REEV)的能量管理策略,针对现有优化策略实时性差的问题,提出基于工况识别的自适应等效燃油消耗最小策略(A-ECMS)。首先建立整车Simulink模型和基于规则的策略;然后研究动态规划(DP)算法和等效燃油最小策略;接着通过聚类分析将道路工况分为四类,并设计工况识别算法;最后开发基于工况识别的A-ECMS,通过高德地图预判工况类型并自适应调整SOC分配。仿真显示该策略比规则策略节油8%,比简单SOC规划策略节油2%,并通过硬件在环实验验证了实时可行性。 适合人群:具备一定编程基础,特别是对电动汽车能量管理策略有兴趣的研发人员和技术爱好者。 使用场景及目标:①理解增程式电动汽车能量管理策略的基本原理;②掌握动态规划算法和等效燃油消耗最小策略的应用;③学习工况识别算法的设计和实现;④了解基于工况识别的A-ECMS策略的具体实现及其优化效果。 其他说明:此资源不仅提供了详细的MATLAB/Simulink代码实现,还深入分析了各算法的原理和应用场景,适合用于学术研究和工业实践。在学习过程中,建议结合代码调试和实际数据进行实践,以便更好地理解策略的优化效果。此外,论文还探讨了未来的研究方向,如深度学习替代聚类、多目标优化以及V2X集成等,为后续研究提供了思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值