Skip to content
This repository was archived by the owner on May 15, 2025. It is now read-only.

Commit cce3098

Browse files
Merge branch 'develop'
2 parents 1bb53d7 + 666c244 commit cce3098

10 files changed

Lines changed: 66 additions & 8 deletions

File tree

MaterialDesignControls.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
33
<metadata minClientVersion="2.8.1">
44
<id>Plugin.MaterialDesignControls</id>
5-
<version>1.3.0</version>
5+
<version>1.3.1</version>
66
<title>MaterialDesignControls Plugin for Xamarin Forms</title>
77
<authors>Horus</authors>
88
<owners>AgustinBonillaHorus</owners>

example/ExampleMaterialDesignControls/App.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
<Setter Property="BorderColor" Value="#4c6277" />
5656
<Setter Property="DisabledBorderColor" Value="#c6c6c5" />
5757
<Setter Property="BusyColor" Value="#4c6277" />
58+
<Setter Property="ToUpper" Value="False" />
5859
</Style>
5960

6061
<!-- MaterialOutlineButton -->

example/ExampleMaterialDesignControls/Pages/MaterialButtonPage.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<ContentPage.Content>
88
<ScrollView>
99
<StackLayout Padding="16" Spacing="16">
10-
<material:MaterialButton x:Name="btnSave" Text="Save" Icon="save.png" Command="{Binding TapCommand}" CommandParameter="Saved" />
10+
<material:MaterialButton x:Name="btnSave" Text="Save" ToUpper="True" Icon="save.png" Command="{Binding TapCommand}" CommandParameter="Saved" />
1111
<material:MaterialOutlineButton Text="Cancel" Command="{Binding TapCommand}" CommandParameter="Canceled" />
1212
<material:MaterialFlatButton Text="Delete" Icon="delete.png" Command="{Binding TapCommand}" CommandParameter="Deleted" />
1313

src/MaterialDesignControls.Android/MaterialDesignControls.Android.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@
130130
<Compile Include="Renderers\MaterialTimePickerRenderer.cs" />
131131
<Compile Include="Renderers\MaterialEditorRenderer.cs" />
132132
<Compile Include="Renderers\MaterialLabelRenderer.cs" />
133+
<Compile Include="Renderers\MaterialButtonRenderer.cs" />
133134
</ItemGroup>
134135
<ItemGroup>
135136
<None Include="Resources\AboutResources.txt" />

src/MaterialDesignControls.Android/Renderers.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public static void Init()
1010
MaterialTimePickerRenderer.Init();
1111
MaterialEditorRenderer.Init();
1212
MaterialLabelRenderer.Init();
13+
MaterialButtonRenderer.Init();
1314
}
1415
}
1516
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using Android.Content;
2+
using Plugin.MaterialDesignControls.Android;
3+
using Plugin.MaterialDesignControls.Implementations;
4+
using Xamarin.Forms;
5+
using Xamarin.Forms.Platform.Android;
6+
7+
[assembly: ExportRenderer(typeof(CustomButton), typeof(MaterialButtonRenderer))]
8+
9+
namespace Plugin.MaterialDesignControls.Android
10+
{
11+
public class MaterialButtonRenderer : ButtonRenderer
12+
{
13+
public static void Init() { }
14+
15+
public MaterialButtonRenderer(Context context) : base(context)
16+
{ }
17+
18+
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
19+
{
20+
base.OnElementChanged(e);
21+
if (this.Control != null)
22+
{
23+
this.Control.SetAllCaps(false);
24+
}
25+
}
26+
}
27+
}

src/MaterialDesignControls.Android/Renderers/MaterialEditorRenderer.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
using System;
2-
using Android.Content;
1+
using Android.Content;
32
using Android.Graphics.Drawables;
43
using AndroidGraphics = Android.Graphics;
54
using Plugin.MaterialDesignControls.Implementations;
65
using Xamarin.Forms;
76
using Xamarin.Forms.Platform.Android;
8-
using System.ComponentModel;
97

108
[assembly: ExportRenderer(typeof(CustomEditor), typeof(Plugin.MaterialDesignControls.Android.MaterialEditorRenderer))]
119

src/MaterialDesignControls/Controls/MaterialButton.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Runtime.CompilerServices;
33
using System.Windows.Input;
4+
using Plugin.MaterialDesignControls.Implementations;
45
using Xamarin.Forms;
56

67
namespace Plugin.MaterialDesignControls
@@ -23,7 +24,7 @@ public MaterialButton()
2324

2425
private bool initialized = false;
2526

26-
protected Button button;
27+
protected CustomButton button;
2728

2829
private Grid grid;
2930

@@ -177,6 +178,15 @@ public string DisabledIcon
177178
set { SetValue(DisabledIconProperty, value); }
178179
}
179180

181+
public static readonly BindableProperty ToUpperProperty =
182+
BindableProperty.Create(nameof(ToUpper), typeof(bool), typeof(MaterialButton), defaultValue: false);
183+
184+
public bool ToUpper
185+
{
186+
get { return (bool)GetValue(ToUpperProperty); }
187+
set { SetValue(ToUpperProperty, value); }
188+
}
189+
180190
#endregion Properties
181191

182192
#region Methods
@@ -203,7 +213,7 @@ private void Initialize()
203213
};
204214
this.grid.Children.Add(this.actIndicator, 0, 0);
205215

206-
this.button = new Button
216+
this.button = new CustomButton
207217
{
208218
CornerRadius = 4,
209219
Padding = new Thickness(12, 0)
@@ -221,7 +231,8 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
221231
switch (propertyName)
222232
{
223233
case nameof(this.Text):
224-
this.button.Text = this.Text;
234+
case nameof(this.ToUpper):
235+
this.button.Text = this.ToUpper ? this.Text?.ToUpper() : this.Text;
225236
break;
226237
case nameof(this.TextColor):
227238
case nameof(this.DisabledTextColor):
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System.Runtime.CompilerServices;
2+
using Xamarin.Forms;
3+
4+
namespace Plugin.MaterialDesignControls.Implementations
5+
{
6+
public class CustomButton : Button
7+
{
8+
protected override void OnPropertyChanged([CallerMemberName] string propertyName = null)
9+
{
10+
base.OnPropertyChanged(propertyName);
11+
12+
if (propertyName.Equals(IsEnabledProperty.PropertyName) && !this.IsEnabled)
13+
{
14+
this.IsEnabled = true;
15+
}
16+
}
17+
}
18+
}

src/MaterialDesignControls/MaterialDesignControls.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
<Compile Include="Controls\MaterialButton.cs" />
9797
<Compile Include="Implementations\CustomImageButton.cs" />
9898
<Compile Include="Animations\ShakeAnimation.cs" />
99+
<Compile Include="Implementations\CustomButton.cs" />
99100
</ItemGroup>
100101

101102
<ItemGroup Condition=" $(TargetFramework.StartsWith('netstandard')) ">

0 commit comments

Comments
 (0)