如何格式化DatePicker以显示日/月/年的日期格式?
发布时间:2020-12-14 01:57:10 所属栏目:Windows 来源:网络整理
导读:我正在使用 Windows Phone 8.1 DatePicker 它默认显示日期为月/日/年,我看不出任何方法可以将其更改为日/月/年的“正确”方式. 这就是我声明DatePicker的方式 DatePicker Name="datePicker" HorizontalAlignment="Center" MonthFormat="{}{month.full}"/ 将
我正在使用
Windows Phone 8.1
DatePicker
它默认显示日期为月/日/年,我看不出任何方法可以将其更改为日/月/年的“正确”方式. 这就是我声明DatePicker的方式 <DatePicker Name="datePicker" HorizontalAlignment="Center" MonthFormat="{}{month.full}"/> 将其显示为 我可以在链接的msdn文章中看到我可以将DateTimeFormatter与ComboBox选择器结合使用,但这对我来说不是一个选项. 可能吗? 解决方法
编辑模板
在Xaml中,每个控件都有一种可以操作的样式,以改变它的外观和感觉.控件也相互继承,例如日期选择器由按钮和内容容器组成.按钮由边框和内容容器组成. 更新日期选择器样式.右键单击visual studio中的日期选择器控件,从菜单中单击编辑模板,然后单击编辑副本.对于此示例,您要在日期选择器模板中编辑按钮模板的样式… 您还需要创建一个在模板中使用的Converter类 这个答案对我有用 <Page x:Class="DatePikerAnswer.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:DatePikerAnswer" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Page.Resources> <!-- Format Converter --> <local:DateConverter x:Key="FormatConverter"/> <!-- My Button Style--> <Thickness x:Key="PhoneBorderThickness">2.5</Thickness> <FontWeight x:Key="PhoneButtonFontWeight">Semibold</FontWeight> <x:Double x:Key="TextStyleLargeFontSize">18.14</x:Double> <x:Double x:Key="PhoneButtonMinHeight">57.5</x:Double> <x:Double x:Key="PhoneButtonMinWidth">109</x:Double> <Thickness x:Key="PhoneTouchTargetOverhang">0,9.5</Thickness> <SolidColorBrush x:Key="ButtonDisabledBackgroundThemeBrush" Color="Transparent"/> <Style x:Key="MyButtonStyle" TargetType="Button"> <Setter Property="Background" Value="Transparent"/> <Setter Property="BorderBrush" Value="{ThemeResource PhoneForegroundBrush}"/> <Setter Property="Foreground" Value="{ThemeResource PhoneForegroundBrush}"/> <Setter Property="BorderThickness" Value="{ThemeResource PhoneBorderThickness}"/> <Setter Property="FontFamily" Value="{ThemeResource PhoneFontFamilyNormal}"/> <Setter Property="FontWeight" Value="{ThemeResource PhoneButtonFontWeight}"/> <Setter Property="FontSize" Value="{ThemeResource TextStyleLargeFontSize}"/> <Setter Property="Padding" Value="9.5,0"/> <Setter Property="MinHeight" Value="{ThemeResource PhoneButtonMinHeight}"/> <Setter Property="MinWidth" Value="{ThemeResource PhoneButtonMinWidth}"/> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Button"> <Grid x:Name="Grid" Background="Transparent"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualStateGroup.Transitions> <VisualTransition From="Pressed" To="PointerOver"> <Storyboard> <PointerUpThemeAnimation Storyboard.TargetName="Grid"/> </Storyboard> </VisualTransition> <VisualTransition From="PointerOver" To="Normal"> <Storyboard> <PointerUpThemeAnimation Storyboard.TargetName="Grid"/> </Storyboard> </VisualTransition> <VisualTransition From="Pressed" To="Normal"> <Storyboard> <PointerUpThemeAnimation Storyboard.TargetName="Grid"/> </Storyboard> </VisualTransition> </VisualStateGroup.Transitions> <VisualState x:Name="Normal"/> <VisualState x:Name="PointerOver"/> <VisualState x:Name="Pressed"> <Storyboard> <PointerDownThemeAnimation Storyboard.TargetName="Grid"/> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonPressedForegroundThemeBrush}"/> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="Border"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonPressedBackgroundThemeBrush}"/> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Disabled"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonDisabledForegroundThemeBrush}"/> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="Border"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonDisabledBorderThemeBrush}"/> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="Border"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonDisabledBackgroundThemeBrush}"/> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Margin="{ThemeResource PhoneTouchTargetOverhang}"> <ContentPresenter x:Name="ContentPresenter" AutomationProperties.AccessibilityView="Raw" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{Binding Content,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource FormatConverter},ConverterParameter={0:dd/MM/yyyy}}" Foreground="{TemplateBinding Foreground}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> </Border> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> <!--DatePicker Style--> <FontFamily x:Key="PhoneFontFamilyNormal">Segoe WP</FontFamily> <x:Double x:Key="ContentControlFontSize">20.26</x:Double> <Style x:Key="MyDatePickerStyle1" TargetType="DatePicker"> <Setter Property="FontFamily" Value="{ThemeResource PhoneFontFamilyNormal}"/> <Setter Property="FontSize" Value="{ThemeResource ContentControlFontSize}"/> <Setter Property="Foreground" Value="{ThemeResource DatePickerForegroundThemeBrush}"/> <Setter Property="HorizontalAlignment" Value="Stretch"/> <Setter Property="HorizontalContentAlignment" Value="Left"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="DatePicker"> <StackPanel x:Name="LayoutRoot" Margin="{TemplateBinding Padding}"> <ContentPresenter x:Name="HeaderContentPresenter" ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" Margin="0,-3" Style="{StaticResource HeaderContentPresenterStyle}"/> <Button x:Name="FlyoutButton" BorderBrush="{TemplateBinding Foreground}" BorderThickness="2.5" Background="{TemplateBinding Background}" Foreground="{TemplateBinding Foreground}" HorizontalAlignment="Stretch" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsEnabled="{TemplateBinding IsEnabled}" Style="{StaticResource MyButtonStyle}" Padding="6.5,3"/> </StackPanel> </ControlTemplate> </Setter.Value> </Setter> </Style> </Page.Resources> <Grid> </Grid> </Page> 转换器类…… using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using Windows.UI.Xaml.Data; namespace DatePikerAnswer { class DateConverter : IValueConverter { public object Convert(object value,Type targetType,object parameter,string language) { if (value != null) { ///Convert Class throws exception so can not convert to date time string TheCurrentDate = value.ToString(); string[] Values = TheCurrentDate.Split('/'); string Day,Month,Year; Day = Values[1]; Month = Values[0]; Year = Values[2]; string retvalue = string.Format("{0}/{1}/{2}",Day,Year); return retvalue; } return value; } public object ConvertBack(object value,string language) { throw new NotImplementedException(); } } } 最终结果是…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- wpf – 使用Windows Workflow Foundation(WF)作为
- .net – ClickOnce应用程序和Windows 8认证
- F#interactive,对dll引用的API限制
- 像Windows中的免费源代码浏览器和编辑器一样的源
- DirectX11 With Windows SDK--23 立方体映射:动
- 我可以在Windows XP或7上使用最新的.NET框架吗?
- windows-phone-7 – 在ItemsControl Tap事件上绑
- windows – 哪里可以找到外观漂亮且Vista外观相似
- active-directory – 无法在Windows Server 2003
- .net – 使用Microsoft的应用程序块
热点阅读