Skip to content

Commit ae24275

Browse files
committed
Use BadgedEx from ControlzEx
Update the other dependencies too
1 parent 36a0fb2 commit ae24275

File tree

10 files changed

+168
-130
lines changed

10 files changed

+168
-130
lines changed

MaterialDesignThemes.Wpf/Badged.cs

Lines changed: 2 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,16 @@
11
using System.Windows;
2-
using System.Windows.Controls;
3-
using System.Windows.Media;
2+
using ControlzEx;
43

54
namespace MaterialDesignThemes.Wpf
65
{
7-
public enum BadgePlacementMode
8-
{
9-
TopLeft,
10-
Top,
11-
TopRight,
12-
Right,
13-
BottomRight,
14-
Bottom,
15-
BottomLeft,
16-
Left
17-
}
18-
196
[TemplatePart(Name = BadgeContainerPartName, Type = typeof(UIElement))]
20-
public class Badged : ContentControl
7+
public class Badged : BadgedEx
218
{
22-
public const string BadgeContainerPartName = "PART_BadgeContainer";
23-
private FrameworkElement _badgeContainer;
24-
259
static Badged()
2610
{
2711
DefaultStyleKeyProperty.OverrideMetadata(typeof(Badged), new FrameworkPropertyMetadata(typeof(Badged)));
2812
}
2913

30-
public static readonly DependencyProperty BadgeProperty = DependencyProperty.Register(
31-
"Badge", typeof(object), typeof(Badged), new FrameworkPropertyMetadata(default(object), FrameworkPropertyMetadataOptions.AffectsArrange, OnBadgeChanged));
32-
33-
public object Badge
34-
{
35-
get { return (object) GetValue(BadgeProperty); }
36-
set { SetValue(BadgeProperty, value); }
37-
}
38-
39-
public static readonly DependencyProperty BadgeBackgroundProperty = DependencyProperty.Register(
40-
"BadgeBackground", typeof(Brush), typeof(Badged), new PropertyMetadata(default(Brush)));
41-
42-
public Brush BadgeBackground
43-
{
44-
get { return (Brush) GetValue(BadgeBackgroundProperty); }
45-
set { SetValue(BadgeBackgroundProperty, value); }
46-
}
47-
48-
public static readonly DependencyProperty BadgeForegroundProperty = DependencyProperty.Register(
49-
"BadgeForeground", typeof(Brush), typeof(Badged), new PropertyMetadata(default(Brush)));
50-
51-
public Brush BadgeForeground
52-
{
53-
get { return (Brush) GetValue(BadgeForegroundProperty); }
54-
set { SetValue(BadgeForegroundProperty, value); }
55-
}
56-
5714
public static readonly DependencyProperty BadgeColorZoneModeProperty = DependencyProperty.Register(
5815
"BadgeColorZoneMode", typeof(ColorZoneMode), typeof(Badged), new PropertyMetadata(default(ColorZoneMode)));
5916

@@ -62,82 +19,5 @@ public ColorZoneMode BadgeColorZoneMode
6219
get { return (ColorZoneMode) GetValue(BadgeColorZoneModeProperty); }
6320
set { SetValue(BadgeColorZoneModeProperty, value); }
6421
}
65-
66-
public static readonly DependencyProperty BadgePlacementModeProperty = DependencyProperty.Register(
67-
"BadgePlacementMode", typeof(BadgePlacementMode), typeof(Badged), new PropertyMetadata(default(BadgePlacementMode)));
68-
69-
public BadgePlacementMode BadgePlacementMode
70-
{
71-
get { return (BadgePlacementMode) GetValue(BadgePlacementModeProperty); }
72-
set { SetValue(BadgePlacementModeProperty, value); }
73-
}
74-
75-
public static readonly RoutedEvent BadgeChangedEvent =
76-
EventManager.RegisterRoutedEvent(
77-
"BadgeChanged",
78-
RoutingStrategy.Bubble,
79-
typeof(RoutedPropertyChangedEventHandler<object>),
80-
typeof(Badged));
81-
82-
public event RoutedPropertyChangedEventHandler<object> BadgeChanged
83-
{
84-
add { AddHandler(BadgeChangedEvent, value); }
85-
remove { RemoveHandler(BadgeChangedEvent, value); }
86-
}
87-
88-
private static readonly DependencyPropertyKey IsBadgeSetPropertyKey =
89-
DependencyProperty.RegisterReadOnly(
90-
"IsBadgeSet", typeof(bool), typeof(Badged),
91-
new PropertyMetadata(default(bool)));
92-
93-
public static readonly DependencyProperty IsBadgeSetProperty =
94-
IsBadgeSetPropertyKey.DependencyProperty;
95-
96-
public bool IsBadgeSet
97-
{
98-
get { return (bool) GetValue(IsBadgeSetProperty); }
99-
private set { SetValue(IsBadgeSetPropertyKey, value); }
100-
}
101-
102-
private static void OnBadgeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
103-
{
104-
var instance = (Badged)d;
105-
106-
instance.IsBadgeSet = !string.IsNullOrWhiteSpace(e.NewValue as string) || (e.NewValue != null && !(e.NewValue is string));
107-
108-
var args = new RoutedPropertyChangedEventArgs<object>(
109-
e.OldValue,
110-
e.NewValue) {RoutedEvent = BadgeChangedEvent};
111-
instance.RaiseEvent(args);
112-
}
113-
114-
public override void OnApplyTemplate()
115-
{
116-
base.OnApplyTemplate();
117-
118-
_badgeContainer = GetTemplateChild(BadgeContainerPartName) as FrameworkElement;
119-
}
120-
121-
protected override Size ArrangeOverride(Size arrangeBounds)
122-
{
123-
var result = base.ArrangeOverride(arrangeBounds);
124-
125-
if (_badgeContainer == null) return result;
126-
127-
var containerDesiredSize = _badgeContainer.DesiredSize;
128-
if ((containerDesiredSize.Width == 0.0 || containerDesiredSize.Height == 0.0)
129-
&& !double.IsNaN(_badgeContainer.ActualWidth) && !double.IsInfinity(_badgeContainer.ActualWidth)
130-
&& !double.IsNaN(_badgeContainer.ActualHeight) && !double.IsInfinity(_badgeContainer.ActualHeight))
131-
{
132-
containerDesiredSize = new Size(_badgeContainer.ActualWidth, _badgeContainer.ActualHeight);
133-
}
134-
135-
var h = 0 - containerDesiredSize.Width / 2;
136-
var v = 0 - containerDesiredSize.Height / 2;
137-
_badgeContainer.Margin = new Thickness(0);
138-
_badgeContainer.Margin = new Thickness(h, v, h, v);
139-
140-
return result;
141-
}
14222
}
14323
}

MaterialDesignThemes.Wpf/MaterialDesignThemes.Wpf.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@
4747
<NoWarn>CS1591;CS1574</NoWarn>
4848
</PropertyGroup>
4949
<ItemGroup>
50+
<Compile Include="..\paket-files\ControlzEx\ControlzEx\src\ControlzEx\BadgedEx.cs">
51+
<Paket>True</Paket>
52+
<Link>ControlzEx/BadgedEx.cs</Link>
53+
</Compile>
5054
<Compile Include="..\paket-files\ControlzEx\ControlzEx\src\ControlzEx\PackIconBase.cs">
5155
<Paket>True</Paket>
5256
<Link>ControlzEx/PackIconBase.cs</Link>
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
File:PackIconBase.cs ControlzEx
2-
File:PopupEx.cs ControlzEx
2+
File:PopupEx.cs ControlzEx
3+
File:BadgedEx.cs ControlzEx
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
using System.Windows;
2+
using System.Windows.Controls;
3+
using System.Windows.Media;
4+
5+
namespace ControlzEx
6+
{
7+
public enum BadgePlacementMode
8+
{
9+
TopLeft,
10+
Top,
11+
TopRight,
12+
Right,
13+
BottomRight,
14+
Bottom,
15+
BottomLeft,
16+
Left
17+
}
18+
19+
[TemplatePart(Name = BadgeContainerPartName, Type = typeof(UIElement))]
20+
public class BadgedEx : ContentControl
21+
{
22+
public const string BadgeContainerPartName = "PART_BadgeContainer";
23+
private FrameworkElement _badgeContainer;
24+
25+
public static readonly DependencyProperty BadgeProperty = DependencyProperty.Register(
26+
"Badge", typeof(object), typeof(BadgedEx), new FrameworkPropertyMetadata(default(object), FrameworkPropertyMetadataOptions.AffectsArrange, OnBadgeChanged));
27+
28+
public object Badge
29+
{
30+
get { return (object) GetValue(BadgeProperty); }
31+
set { SetValue(BadgeProperty, value); }
32+
}
33+
34+
public static readonly DependencyProperty BadgeBackgroundProperty = DependencyProperty.Register(
35+
"BadgeBackground", typeof(Brush), typeof(BadgedEx), new PropertyMetadata(default(Brush)));
36+
37+
public Brush BadgeBackground
38+
{
39+
get { return (Brush) GetValue(BadgeBackgroundProperty); }
40+
set { SetValue(BadgeBackgroundProperty, value); }
41+
}
42+
43+
public static readonly DependencyProperty BadgeForegroundProperty = DependencyProperty.Register(
44+
"BadgeForeground", typeof(Brush), typeof(BadgedEx), new PropertyMetadata(default(Brush)));
45+
46+
public Brush BadgeForeground
47+
{
48+
get { return (Brush) GetValue(BadgeForegroundProperty); }
49+
set { SetValue(BadgeForegroundProperty, value); }
50+
}
51+
52+
public static readonly DependencyProperty BadgePlacementModeProperty = DependencyProperty.Register(
53+
"BadgePlacementMode", typeof(BadgePlacementMode), typeof(BadgedEx), new PropertyMetadata(default(BadgePlacementMode)));
54+
55+
public BadgePlacementMode BadgePlacementMode
56+
{
57+
get { return (BadgePlacementMode) GetValue(BadgePlacementModeProperty); }
58+
set { SetValue(BadgePlacementModeProperty, value); }
59+
}
60+
61+
public static readonly RoutedEvent BadgeChangedEvent =
62+
EventManager.RegisterRoutedEvent(
63+
"BadgeChanged",
64+
RoutingStrategy.Bubble,
65+
typeof(RoutedPropertyChangedEventHandler<object>),
66+
typeof(BadgedEx));
67+
68+
public event RoutedPropertyChangedEventHandler<object> BadgeChanged
69+
{
70+
add { AddHandler(BadgeChangedEvent, value); }
71+
remove { RemoveHandler(BadgeChangedEvent, value); }
72+
}
73+
74+
private static readonly DependencyPropertyKey IsBadgeSetPropertyKey =
75+
DependencyProperty.RegisterReadOnly(
76+
"IsBadgeSet", typeof(bool), typeof(BadgedEx),
77+
new PropertyMetadata(default(bool)));
78+
79+
public static readonly DependencyProperty IsBadgeSetProperty =
80+
IsBadgeSetPropertyKey.DependencyProperty;
81+
82+
public bool IsBadgeSet
83+
{
84+
get { return (bool) GetValue(IsBadgeSetProperty); }
85+
private set { SetValue(IsBadgeSetPropertyKey, value); }
86+
}
87+
88+
private static void OnBadgeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
89+
{
90+
var instance = (BadgedEx)d;
91+
92+
instance.IsBadgeSet = !string.IsNullOrWhiteSpace(e.NewValue as string) || (e.NewValue != null && !(e.NewValue is string));
93+
94+
var args = new RoutedPropertyChangedEventArgs<object>(
95+
e.OldValue,
96+
e.NewValue) {RoutedEvent = BadgeChangedEvent};
97+
instance.RaiseEvent(args);
98+
}
99+
100+
public override void OnApplyTemplate()
101+
{
102+
base.OnApplyTemplate();
103+
104+
_badgeContainer = GetTemplateChild(BadgeContainerPartName) as FrameworkElement;
105+
}
106+
107+
protected override Size ArrangeOverride(Size arrangeBounds)
108+
{
109+
var result = base.ArrangeOverride(arrangeBounds);
110+
111+
if (_badgeContainer == null) return result;
112+
113+
var containerDesiredSize = _badgeContainer.DesiredSize;
114+
if ((containerDesiredSize.Width <= 0.0 || containerDesiredSize.Height <= 0.0)
115+
&& !double.IsNaN(_badgeContainer.ActualWidth) && !double.IsInfinity(_badgeContainer.ActualWidth)
116+
&& !double.IsNaN(_badgeContainer.ActualHeight) && !double.IsInfinity(_badgeContainer.ActualHeight))
117+
{
118+
containerDesiredSize = new Size(_badgeContainer.ActualWidth, _badgeContainer.ActualHeight);
119+
}
120+
121+
var h = 0 - containerDesiredSize.Width / 2;
122+
var v = 0 - containerDesiredSize.Height / 2;
123+
_badgeContainer.Margin = new Thickness(0);
124+
_badgeContainer.Margin = new Thickness(h, v, h, v);
125+
126+
return result;
127+
}
128+
}
129+
}

paket-files/ControlzEx/ControlzEx/src/ControlzEx/PackIconBase.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
using System;
22
using System.Collections.Generic;
3+
#if NETFX_CORE
4+
using Windows.UI.Xaml;
5+
using Windows.UI.Xaml.Controls;
6+
#else
37
using System.ComponentModel;
48
using System.Windows;
59
using System.Windows.Controls;
610
using System.Windows.Media;
11+
#endif
712

813
namespace ControlzEx
914
{
@@ -49,6 +54,19 @@ public TKind Kind
4954
set { SetValue(KindProperty, value); }
5055
}
5156

57+
#if NETFX_CORE
58+
private static readonly DependencyProperty DataProperty
59+
= DependencyProperty.Register(nameof(Data), typeof(string), typeof(PackIconBase<TKind>), new PropertyMetadata(""));
60+
61+
/// <summary>
62+
/// Gets the icon path data for the current <see cref="Kind"/>.
63+
/// </summary>
64+
public string Data
65+
{
66+
get { return (string)GetValue(DataProperty); }
67+
private set { SetValue(DataProperty, value); }
68+
}
69+
#else
5270
private static readonly DependencyPropertyKey DataPropertyKey
5371
= DependencyProperty.RegisterReadOnly(nameof(Data), typeof(string), typeof(PackIconBase<TKind>), new PropertyMetadata(""));
5472

@@ -64,8 +82,13 @@ public string Data
6482
get { return (string)GetValue(DataProperty); }
6583
private set { SetValue(DataPropertyKey, value); }
6684
}
85+
#endif
6786

87+
#if NETFX_CORE
88+
protected override void OnApplyTemplate()
89+
#else
6890
public override void OnApplyTemplate()
91+
#endif
6992
{
7093
base.OnApplyTemplate();
7194

paket-files/ControlzEx/ControlzEx/src/ControlzEx/PopupEx.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace ControlzEx
2020
public class PopupEx : Popup
2121
{
2222
public static readonly DependencyProperty CloseOnMouseLeftButtonDownProperty
23-
= DependencyProperty.Register("CloseOnMouseLeftButtonDown",
23+
= DependencyProperty.Register(nameof(CloseOnMouseLeftButtonDown),
2424
typeof(bool),
2525
typeof(PopupEx),
2626
new PropertyMetadata(false));
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
72aa238cd565ef63e8d52c29982a587e039d04ec
2-
10d0bab474eb73a846e3993175c8357a7fa95c07
1+
c0ebf5b9937c52bb4b0012e3430aae6397e400db

paket-files/samueldjack/VirtualCollection/VirtualCollection/VirtualCollection/paket.dependencies

Whitespace-only changes.

paket.dependencies

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ nuget xunit.core 2.1.0 framework: = net452
1414
nuget xunit.extensibility.core 2.1.0 framework: = net452
1515
nuget xunit.extensibility.execution 2.1.0 framework: = net452
1616

17-
github ControlzEx/ControlzEx:72aa238cd565ef63e8d52c29982a587e039d04ec src/ControlzEx/PopupEx.cs
18-
github ControlzEx/ControlzEx:10d0bab474eb73a846e3993175c8357a7fa95c07 src/ControlzEx/PackIconBase.cs
17+
github ControlzEx/ControlzEx:1f4d66092fb101f3ece1dc88b36c20d815f88b2b src/ControlzEx/PopupEx.cs
18+
github ControlzEx/ControlzEx:1f4d66092fb101f3ece1dc88b36c20d815f88b2b src/ControlzEx/PackIconBase.cs
19+
github ControlzEx/ControlzEx:1f4d66092fb101f3ece1dc88b36c20d815f88b2b src/ControlzEx/BadgedEx.cs
1920
github samueldjack/VirtualCollection:e63d891c252c2ac1a3ebb26dddb9a3d89effe3f2 VirtualCollection/VirtualCollection/VirtualizingWrapPanel.cs

paket.lock

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ NUGET
2323
xunit.extensibility.core (2.1)
2424
GITHUB
2525
remote: ControlzEx/ControlzEx
26-
src/ControlzEx/PackIconBase.cs (10d0bab474eb73a846e3993175c8357a7fa95c07)
27-
src/ControlzEx/PopupEx.cs (72aa238cd565ef63e8d52c29982a587e039d04ec)
26+
src/ControlzEx/BadgedEx.cs (c0ebf5b9937c52bb4b0012e3430aae6397e400db)
27+
src/ControlzEx/PackIconBase.cs (c0ebf5b9937c52bb4b0012e3430aae6397e400db)
28+
src/ControlzEx/PopupEx.cs (c0ebf5b9937c52bb4b0012e3430aae6397e400db)
2829
remote: samueldjack/VirtualCollection
2930
VirtualCollection/VirtualCollection/VirtualizingWrapPanel.cs (e63d891c252c2ac1a3ebb26dddb9a3d89effe3f2)

0 commit comments

Comments
 (0)