Это довольно старый вопрос (несколько неправильно помечен как «ответ»).
Если вам нужно использовать определенный формат даты для элемента управления WPF DatePicker, но вы не хотите открывать для него исходный код (который фактически доступен для загрузки), вы всегда можете указать DateFormat всего вашего пользовательского интерфейса. или установите его для каждого элемента управления DatePicker.
В своем приложении я использовал следующее в событии Application_Startup:
Private Sub Application_Startup(ByVal sender As Object, ByVal e As System.Windows.StartupEventArgs) Handles MyBase.Startup
' other application initialization code here
Dim culInfo As Globalization.CultureInfo = New System.Globalization.CultureInfo("en-us")
Dim dtinfo As Globalization.DateTimeFormatInfo = New System.Globalization.DateTimeFormatInfo() With {
.ShortDatePattern = "dd-MMM-yyyy",
.ShortTimePattern = "hh:mm:ss tt",
.TimeSeparator = ":",
.MonthNames = System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat.MonthNames(),
.AbbreviatedMonthNames = System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat.AbbreviatedMonthNames(),
.DateSeparator = "-"}
culInfo.DateTimeFormat = dtinfo
System.Threading.Thread.CurrentThread.CurrentCulture = culInfo
Обратите внимание, что это установит формат для краткого формата даты повсюду в вашем приложении (что я и хотел, вместо того, чтобы проходить и применять культуру к каждому экземпляру средства выбора даты. выше на основе другого поста StackOverflow, я точно не помню, где это было (или я бы сказал автор), но в любом случае, надеюсь, это поможет!
Кирк