我正在開發WinPhone應用程序。如何將最大日期/分鐘日期設置爲WinPhone DatePicker
<DatePicker x:Name="MyDatePicker" MinYear="2016" MaxYear="2017"/>
該代碼無法正常工作。
我可以選擇前幾年,我可以選擇2015年,2018年等。如果可能,我想禁用DatePicker本身的月份和日期。
總之,我想設置日曆的最小和最大允許日期,以便在日曆中禁用不需要的日期。
我正在開發WinPhone應用程序。如何將最大日期/分鐘日期設置爲WinPhone DatePicker
<DatePicker x:Name="MyDatePicker" MinYear="2016" MaxYear="2017"/>
該代碼無法正常工作。
我可以選擇前幾年,我可以選擇2015年,2018年等。如果可能,我想禁用DatePicker本身的月份和日期。
總之,我想設置日曆的最小和最大允許日期,以便在日曆中禁用不需要的日期。
根據documentation,XAML分析器不具有轉換邏輯,用於將字符串轉換爲日期作爲DateTimeOffset
對象,因此MinYear
和MaxYear
屬性不能被設置爲XAML屬性字符串。有以下選項可設置這些屬性:
DatePicker
。視圖模型類:
public DateTimeOffset MinYear
{
get { return new DateTime(2016, 1, 1); }
}
public DateTimeOffset MaxYear
{
get { return new DateTime(2017, 12, 31); }
}
XAML佈局:
<DatePicker x:Name="MyDatePicker" MinYear="{Binding MinYear}" MaxYear="{Binding MaxYear}" />
我想設置最低和最高日!基本上我想設置最大和最小日期而不是一年 –
@RajanM你不能用'DatePicker'來完成。檢查解決方法在https://stackoverflow.com/a/32577387/2595805 –
如果您正在使用Xamarin.Forms然後
<StackLayout>
<DatePicker VerticalOptions="CenterAndExpand" Date="{x:Static sys:DateTime.Now}">
<DatePicker.Format>yyyy-MM-dd</DatePicker.Format>
<DatePicker.MinimumDate>
<sys:DateTime x:FactoryMethod="Parse">
<x:Arguments>
<x:String>Jan 1 2000</x:String>
</x:Arguments>
</sys:DateTime>
</DatePicker.MinimumDate>
<DatePicker.MaximumDate>
<sys:DateTime x:FactoryMethod="Parse">
<x:Arguments>
<x:String>Dec 31 2050</x:String>
</x:Arguments>
</sys:DateTime>
</DatePicker.MaximumDate>
</DatePicker>
從https://developer.xamarin.com/api/type/Xamarin.Forms.DatePicker/
檢索如果你只想已經多年,然後用一個正常的選擇器,並給它的年份列表在您接受的範圍內。 https://developer.xamarin.com/api/type/Xamarin.Forms.Picker/
感謝Joagwa!問題是詢問一個Native WinPhone應用程序,而不是Xamarin.Forms。 –
我仍然會這樣做,關於使用標準選取器,或者如果UWP應用程序使用flyoutpicker/flyout。 https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.flyout 而只是有一個可供選擇的年份列表。 – Joagwa
@Joagwa - Xaml可以用於贏手機嗎?我很困惑,因爲我在做xamarin本地開發 –
在Winphone 8.1有沒有辦法設置 最小和最大的日期但eugene-berdnikov在上面建議帖子你可以設置MinYear和MaxYear的月份和日期,你將不得不通過代碼驗證來處理。
但UWP(通用Windows平臺)有CalendarDatePicker使用它你可以設置爲MinDate和MAXDATE財產
如果你想支持Windows 10及以後的版本中,你可能會開始遷移到UWP(通用Windows平臺)
這裏是一個移民tutorial
它的那麼容易,因爲創建新的項目UWP和c選擇現有的文件並重寫一些代碼。
ViewModel類
public DateTimeOffset MinDate
{
get { return new DateTime(2016, 1, 1); }
}
public DateTimeOffset MaxDate
{
get { return new DateTime(2017, 12, 31); }
}
XAML佈局
<CalendarDatePicker MinDate="{Binding MinDate}" MaxDate="{Binding MaxDate}"/>
後面的代碼
CalendarDatePicker calObj=new CalendarDatePicker();
DateTime minDate = new DateTime(2016, 1, 1, 0, 0, 0)
minDate = DateTime.SpecifyKind(minDate, DateTimeKind.Utc);
DateTimeOffset min_Date = minDate;
DateTime maxDate = new DateTime(2017, 1, 1, 0, 0, 0)
maxDate = DateTime.SpecifyKind(maxDate, DateTimeKind.Utc);
DateTimeOffset max_Date = maxDate;
calObj.MinDate=min_Date;
calObj.MaxDate=max_Date;
請知道,也UWP支持的DatePicker這是Windows Phone的一部分8.1
我的建議是在winphone 8.1使用的DatePicker和Windows 10使用CalendarDatePicker
Here可用的日期和時間控制列表,UWP
大多數Windows Phone 8.1設備也有10更新,所以你可能會看到很多人朝着10
任何第三方控制在Windows 8.1中做到這一點? –
CalendarDatePicker是有用的,但它在8.1中不可用...很高興知道日期選擇器也可用於10 –
嗨,Rajan!你在使用Xamarin.Forms嗎? –
不......我正在使用Xamarin Native –
謝謝Rajan。 Xamarin Native僅適用於iOS和Android。在不使用Xamarin.Forms的情況下開發WinPhone應用程序不涉及Mono或Xamarin技術堆棧。下面的一個答案已經用Xamarin.Forms給出了,所以我從你的問題中刪除了「Xamarin」,以幫助你得到更好的答案。 –