diff --git a/Perspex.Controls/DropDown.cs b/Perspex.Controls/DropDown.cs index bdc7d9b588..d2ec168cb3 100644 --- a/Perspex.Controls/DropDown.cs +++ b/Perspex.Controls/DropDown.cs @@ -7,8 +7,7 @@ namespace Perspex.Controls { using System; - using Perspex.Collections; - using Perspex.Controls.Presenters; + using Generators; using Perspex.Controls.Primitives; using Perspex.Controls.Templates; using Perspex.Input; @@ -58,6 +57,11 @@ namespace Perspex.Controls set { this.SetValue(IsDropDownOpenProperty, value); } } + protected override IItemContainerGenerator CreateItemContainerGenerator() + { + return new ItemContainerGenerator(this); + } + protected override void OnPointerPressed(PointerPressEventArgs e) { if (!this.IsDropDownOpen) diff --git a/Perspex.Controls/Presenters/ItemsPresenter.cs b/Perspex.Controls/Presenters/ItemsPresenter.cs index 533f4af22e..c1ffc374b1 100644 --- a/Perspex.Controls/Presenters/ItemsPresenter.cs +++ b/Perspex.Controls/Presenters/ItemsPresenter.cs @@ -46,6 +46,13 @@ namespace Perspex.Controls.Presenters ItemsProperty.Changed.AddClassHandler(x => x.ItemsChanged); } + /// + /// Initializes a new instance of the class. + /// + public ItemsPresenter() + { + } + /// /// Gets the used to generate item container /// controls. diff --git a/Perspex.Themes.Default/DropDownStyle.cs b/Perspex.Themes.Default/DropDownStyle.cs index 6bceae8d60..54374859e3 100644 --- a/Perspex.Themes.Default/DropDownStyle.cs +++ b/Perspex.Themes.Default/DropDownStyle.cs @@ -9,6 +9,7 @@ namespace Perspex.Themes.Default using System.Linq; using System.Reactive.Linq; using Perspex.Controls; + using Controls.Presenters; using Perspex.Controls.Primitives; using Perspex.Controls.Shapes; using Perspex.Controls.Templates; @@ -91,10 +92,15 @@ namespace Perspex.Themes.Default }, new Popup { - Child = new ListBox + Child = new Border { - [~ListBox.ItemsProperty] = control[~DropDown.ItemsProperty], - [~~ListBox.SelectedItemProperty] = control[~~DropDown.SelectedItemProperty], + BorderBrush = Brushes.Black, + BorderThickness = 1, + Padding = new Thickness(4), + Child = new ItemsPresenter + { + [~ListBox.ItemsProperty] = control[~DropDown.ItemsProperty], + } }, PlacementTarget = control, StaysOpen = false,