Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/Xamarin.PropertyEditing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.PropertyEditing.Windows/BrushEditorControl.cs')
-rw-r--r--Xamarin.PropertyEditing.Windows/BrushEditorControl.cs57
1 files changed, 57 insertions, 0 deletions
diff --git a/Xamarin.PropertyEditing.Windows/BrushEditorControl.cs b/Xamarin.PropertyEditing.Windows/BrushEditorControl.cs
new file mode 100644
index 0000000..1a0399e
--- /dev/null
+++ b/Xamarin.PropertyEditing.Windows/BrushEditorControl.cs
@@ -0,0 +1,57 @@
+using System.Windows.Controls;
+using Xamarin.PropertyEditing.Drawing;
+using Xamarin.PropertyEditing.ViewModels;
+
+namespace Xamarin.PropertyEditing.Windows
+{
+ public class BrushEditorControl : PropertyEditorControl
+ {
+ public BrushEditorControl()
+ {
+ DefaultStyleKey = typeof (BrushEditorControl);
+ }
+
+ BrushPropertyViewModel ViewModel => DataContext as BrushPropertyViewModel;
+
+ TabControl tabs;
+ TabItem noBrushTab;
+ TabItem solidColorTab;
+
+ public override void OnApplyTemplate ()
+ {
+ base.OnApplyTemplate ();
+
+ tabs = GetTemplateChild ("brushTabs") as TabControl;
+ noBrushTab = GetTemplateChild ("noBrushTab") as TabItem;
+ solidColorTab = GetTemplateChild ("solidColorTab") as TabItem;
+
+ if (ViewModel.Value == null) {
+ tabs.SelectedItem = noBrushTab;
+ }
+ else if (ViewModel.Value is CommonSolidBrush solidBrush) {
+ tabs.SelectedItem = solidColorTab;
+ }
+
+ tabs.SelectionChanged += (s, e) => {
+ if (ViewModel == null) return;
+ if (tabs.Items[tabs.SelectedIndex] is TabItem tab) {
+ StorePreviousBrush ();
+ if (tab == noBrushTab) {
+ ViewModel.Value = null;
+ }
+ else if (tab == solidColorTab) {
+ ViewModel.Value = ViewModel.PreviousSolidBrush ?? new CommonSolidBrush (new CommonColor (0, 0, 0));
+ }
+ }
+ };
+ }
+
+ void StorePreviousBrush()
+ {
+ if (ViewModel == null) return;
+ if (ViewModel.Value is CommonSolidBrush solidBrush) {
+ ViewModel.PreviousSolidBrush = solidBrush;
+ }
+ }
+ }
+}