Skip to content

Commit 94004df

Browse files
committed
feat(datepicker): Changed DatePicker to default on native picker on iOS & Android.
1 parent ef13d6a commit 94004df

File tree

3 files changed

+37
-34
lines changed

3 files changed

+37
-34
lines changed
Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,25 @@
11
<Page
2-
x:Class="UITests.Windows_UI_Xaml_Controls.DatePicker.DatePicker_DatePartVisibility"
3-
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4-
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5-
xmlns:local="using:UITests.Windows_UI_Xaml_Controls.DatePicker"
6-
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
7-
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
8-
mc:Ignorable="d"
9-
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
2+
x:Class="UITests.Windows_UI_Xaml_Controls.DatePicker.DatePicker_DatePartVisibility"
3+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5+
xmlns:xamarin="http://uno.ui/xamarin"
6+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
7+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
8+
mc:Ignorable="d xamarin"
9+
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
1010

11-
<StackPanel>
12-
<DatePicker Header="All parts shown" />
13-
<DatePicker Header="Month and year shown" DayVisible="False" />
14-
<DatePicker Header="Month and day shown" YearVisible="False" />
15-
<DatePicker Header="Day and year shown" MonthVisible="False" />
16-
<DatePicker Header="Only year shown" MonthVisible="False" DayVisible="False" />
17-
</StackPanel>
11+
<ScrollViewer>
12+
<StackPanel Spacing="6">
13+
<DatePicker Header="All parts shown" xamarin:UseNativePicker="False" />
14+
<DatePicker Header="Month and year shown" DayVisible="False" xamarin:UseNativePicker="False" />
15+
<DatePicker Header="Month and day shown" YearVisible="False" xamarin:UseNativePicker="False" />
16+
<DatePicker Header="Day and year shown" MonthVisible="False" xamarin:UseNativePicker="False" />
17+
<DatePicker Header="Only year shown" MonthVisible="False" DayVisible="False" xamarin:UseNativePicker="False" />
18+
<DatePicker Header="All parts shown (native)" xamarin:UseNativePicker="True" />
19+
<DatePicker Header="Month and year shown (native)" DayVisible="False" xamarin:UseNativePicker="True" />
20+
<DatePicker Header="Month and day shown (native)" YearVisible="False" xamarin:UseNativePicker="True" />
21+
<DatePicker Header="Day and year shown (native)" MonthVisible="False" xamarin:UseNativePicker="True" />
22+
<DatePicker Header="Only year shown (native)" MonthVisible="False" DayVisible="False" xamarin:UseNativePicker="True" />
23+
</StackPanel>
24+
</ScrollViewer>
1825
</Page>

src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/DatePicker/DatePicker_Features.xaml

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
x:Class="UITests.Windows_UI_Xaml_Controls.DatePicker.DatePicker_Features"
33
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
44
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5-
xmlns:local="using:UITests.Windows_UI_Xaml_Controls.DatePicker"
65
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
76
xmlns:ios="http://uno.ui/ios"
87
xmlns:android="http://uno.ui/android"
8+
xmlns:xamarin="http://uno.ui/xamarin"
99
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
10-
mc:Ignorable="d ios android"
10+
mc:Ignorable="d ios android xamarin"
1111
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
1212

1313
<StackPanel Spacing="10" Margin="20">
@@ -65,7 +65,8 @@
6565
CalendarIdentifier="{Binding SelectedItem.Content, ElementName=calendarIdentifier, FallbackValue=GregorianCalendar}"
6666
DayVisible="{Binding IsChecked, ElementName=dayVisible}"
6767
MonthVisible="{Binding IsChecked, ElementName=monthVisible}"
68-
YearVisible="{Binding IsChecked, ElementName=yearVisible}" />
68+
YearVisible="{Binding IsChecked, ElementName=yearVisible}"
69+
xamarin:UseNativeStyle="False" />
6970
<Button x:Name="pickerYear" Click="AddYear" Tag="{Binding ElementName=picker}">Y++</Button>
7071
<Button x:Name="pickerMonth" Click="AddMonth" Tag="{Binding ElementName=picker}">M++</Button>
7172
<Button x:Name="pickerDay" Click="AddDay" Tag="{Binding ElementName=picker}">D++</Button>
@@ -156,18 +157,8 @@
156157
</android:TextBlock>
157158
</StackPanel>
158159
<StackPanel Orientation="Horizontal" Spacing="7">
159-
<ios:DatePicker
160-
UseNativeStyle="True"
161-
x:Name="nativeDatePicker"
162-
Date="{x:Bind PickedDate, Mode=TwoWay}"
163-
MinYear="{x:Bind DtYear(minYear.SelectedItem), Mode=OneWay}"
164-
MaxYear="{x:Bind DtYear(maxYear.SelectedItem), Mode=OneWay}"
165-
CalendarIdentifier="{Binding SelectedItem.Content, ElementName=calendarIdentifier, FallbackValue=GregorianCalendar}"
166-
DayVisible="{Binding IsChecked, ElementName=dayVisible}"
167-
MonthVisible="{Binding IsChecked, ElementName=monthVisible}"
168-
YearVisible="{Binding IsChecked, ElementName=yearVisible}" />
169-
<android:DatePicker
170-
UseNativeStyle="True"
160+
<DatePicker
161+
xamarin:UseNativeStyle="True"
171162
x:Name="nativeDatePicker"
172163
Date="{x:Bind PickedDate, Mode=TwoWay}"
173164
MinYear="{x:Bind DtYear(minYear.SelectedItem), Mode=OneWay}"

src/Uno.UI/UI/Xaml/Controls/DatePicker/DatePicker.Flyout.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@ namespace Windows.UI.Xaml.Controls
66
partial class DatePicker
77
{
88
#if __IOS__ || __ANDROID__
9-
public static DependencyProperty UseNativeStyleProperty { get; }= DependencyProperty.Register(
9+
private const bool DEFAULT_NATIVE_STYLE = true;
10+
#else
11+
private const bool DEFAULT_NATIVE_STYLE = false;
12+
#endif
13+
14+
public static DependencyProperty UseNativeStyleProperty { get; } = DependencyProperty.Register(
1015
"UseNativeStyle",
1116
typeof(bool),
1217
typeof(DatePicker),
13-
new PropertyMetadata(default(bool)));
18+
new PropertyMetadata(DEFAULT_NATIVE_STYLE));
1419

1520
/// <summary>
1621
/// If we should use the native picker for the platform.
@@ -22,6 +27,8 @@ public bool UseNativeStyle
2227
set => SetValue(UseNativeStyleProperty, value);
2328
}
2429

30+
#if __IOS__ || __ANDROID__
31+
2532
private Lazy<DatePickerFlyout> _lazyFlyout;
2633

2734
private DatePickerFlyout _flyout => _lazyFlyout.Value;
@@ -34,8 +41,6 @@ public bool UseNativeStyle
3441
private void InitPartial()
3542
{
3643
#if __IOS__ || __ANDROID__
37-
UseNativeStyle = !Style.ShouldUseUWPDefaultStyle(typeof(DatePicker));
38-
3944
DatePickerFlyout CreateFlyout()
4045
{
4146
var f = UseNativeStyle

0 commit comments

Comments
 (0)