如前所述,我希望將日期選擇器日期自定義為我的 XAML 檔案中的 YYYY-MM-DD:
<DatePicker x:Name="DatePicker_Date" Width="300px" VerticalAlignment="Center" HorizontalAlignment="Center" >
<DatePicker.Resources>
<Style TargetType="{x:Type DatePickerTextBox}">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox x:Name="PART_TextBox"
Text="{Binding Path=SelectedDate,
RelativeSource={RelativeSource AncestorType={x:Type DatePicker}},
StringFormat={x:Static local:App.DateFormat}}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DatePicker.Resources>
</DatePicker>
然后在我的 App.xaml.cs 檔案中,我有:
public partial class App : Application
{
public static string DateFormat = "yyyy-MM-dd";
}
因此,這可以在選擇器本身中以正確的方式顯示日期,但是當我參考該日期時:
string dateTemp = DatePicker_Date.Text;
它只是列印出原始日期格式 MM-DD-YYYY
我在這里錯過了什么——我不能使用不起作用的 PART_Textbox.text。如何將新格式化的文本轉換為字串?
我在堆疊溢位時遵循了這些解決方案中的一些,但它們似乎有相同的結果,我最喜歡的一個是在 app.xaml 資源中設定的,所以我不必每次都為我的應用程式中的每個日期選擇器執行此操作,但我有同樣的問題:
<Style TargetType="{x:Type DatePickerTextBox}">
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox x:Name="PART_TextBox"
Text="{Binding Path=SelectedDate, StringFormat='dd.MM.yyyy',
RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}" />
</ControlTemplate>
</Setter.Value>
</Setter>
WPF 相對較新,為我的無知道歉。
uj5u.com熱心網友回復:
您應該DateTime使用SelectedDate屬性獲取當前選擇的日期,然后根據您的特定格式對其進行格式化:
string dateTemp = DatePicker_Date.SelectedDate?.ToString(App.DateFormat);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/388106.html
