diff --git a/src/Avalonia.Controls/ContentControl.cs b/src/Avalonia.Controls/ContentControl.cs
index 0362f7ade4..867dca2be1 100644
--- a/src/Avalonia.Controls/ContentControl.cs
+++ b/src/Avalonia.Controls/ContentControl.cs
@@ -13,7 +13,7 @@ namespace Avalonia.Controls
///
/// Displays according to an .
///
- [TemplatePart("PART_ContentPresenter", typeof(IContentPresenter))]
+ [TemplatePart("PART_ContentPresenter", typeof(ContentPresenter))]
public class ContentControl : TemplatedControl, IContentControl, IContentPresenterHost
{
///
@@ -68,7 +68,7 @@ namespace Avalonia.Controls
///
/// Gets the presenter from the control's template.
///
- public IContentPresenter? Presenter
+ public ContentPresenter? Presenter
{
get;
private set;
@@ -96,16 +96,16 @@ namespace Avalonia.Controls
IAvaloniaList IContentPresenterHost.LogicalChildren => LogicalChildren;
///
- bool IContentPresenterHost.RegisterContentPresenter(IContentPresenter presenter)
+ bool IContentPresenterHost.RegisterContentPresenter(ContentPresenter presenter)
{
return RegisterContentPresenter(presenter);
}
///
- /// Called when an is registered with the control.
+ /// Called when an is registered with the control.
///
/// The presenter.
- protected virtual bool RegisterContentPresenter(IContentPresenter presenter)
+ protected virtual bool RegisterContentPresenter(ContentPresenter presenter)
{
if (presenter.Name == "PART_ContentPresenter")
{
diff --git a/src/Avalonia.Controls/Presenters/ContentPresenter.cs b/src/Avalonia.Controls/Presenters/ContentPresenter.cs
index 972fd2d4ff..7a81454bb0 100644
--- a/src/Avalonia.Controls/Presenters/ContentPresenter.cs
+++ b/src/Avalonia.Controls/Presenters/ContentPresenter.cs
@@ -17,7 +17,7 @@ namespace Avalonia.Controls.Presenters
/// Presents a single item of data inside a template.
///
[PseudoClasses(":empty")]
- public class ContentPresenter : Control, IContentPresenter
+ public class ContentPresenter : Control
{
///
/// Defines the property.
diff --git a/src/Avalonia.Controls/Presenters/IContentPresenter.cs b/src/Avalonia.Controls/Presenters/IContentPresenter.cs
deleted file mode 100644
index 01aec3855f..0000000000
--- a/src/Avalonia.Controls/Presenters/IContentPresenter.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using Avalonia.Controls.Primitives;
-using Avalonia.Metadata;
-
-namespace Avalonia.Controls.Presenters
-{
- ///
- /// Interface for controls that present a single item of data inside a
- /// template.
- ///
- [NotClientImplementable]
- public interface IContentPresenter : IPresenter
- {
- ///
- /// Gets the control displayed by the presenter.
- ///
- Control? Child { get; }
-
- ///
- /// Gets or sets the content to be displayed by the presenter.
- ///
- object? Content { get; set; }
- }
-}
diff --git a/src/Avalonia.Controls/Presenters/IContentPresenterHost.cs b/src/Avalonia.Controls/Presenters/IContentPresenterHost.cs
index dd1aafba65..6b1c733f37 100644
--- a/src/Avalonia.Controls/Presenters/IContentPresenterHost.cs
+++ b/src/Avalonia.Controls/Presenters/IContentPresenterHost.cs
@@ -22,13 +22,13 @@ namespace Avalonia.Controls.Presenters
IAvaloniaList LogicalChildren { get; }
///
- /// Registers an with a host control.
+ /// Registers an with a host control.
///
/// The content presenter.
///
/// True if the content presenter should add its child to the logical children of the
/// host; otherwise false.
///
- bool RegisterContentPresenter(IContentPresenter presenter);
+ bool RegisterContentPresenter(ContentPresenter presenter);
}
}
diff --git a/src/Avalonia.Controls/Presenters/IPresenter.cs b/src/Avalonia.Controls/Presenters/IPresenter.cs
deleted file mode 100644
index dc1d40cdcd..0000000000
--- a/src/Avalonia.Controls/Presenters/IPresenter.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using Avalonia.Controls.Primitives;
-using Avalonia.Metadata;
-
-namespace Avalonia.Controls.Presenters
-{
- ///
- /// Interface for presenters such as and
- /// .
- ///
- ///
- /// A presenter is the gateway between a templated control and its content. When
- /// a control which implements is found in the template
- /// of a then that signals that the visual child
- /// of the presenter is not a part of the template.
- ///
- [NotClientImplementable]
- public interface IPresenter : INamed
- {
- }
-}
diff --git a/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs b/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs
index 3ee50ab547..1c9dd79b13 100644
--- a/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs
+++ b/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs
@@ -13,7 +13,7 @@ namespace Avalonia.Controls.Presenters
///
/// Presents a scrolling view of content inside a .
///
- public class ScrollContentPresenter : ContentPresenter, IPresenter, IScrollable, IScrollAnchorProvider
+ public class ScrollContentPresenter : ContentPresenter, IScrollable, IScrollAnchorProvider
{
private const double EdgeDetectionTolerance = 0.1;
diff --git a/src/Avalonia.Controls/Primitives/HeaderedContentControl.cs b/src/Avalonia.Controls/Primitives/HeaderedContentControl.cs
index d44ef5666c..d989550222 100644
--- a/src/Avalonia.Controls/Primitives/HeaderedContentControl.cs
+++ b/src/Avalonia.Controls/Primitives/HeaderedContentControl.cs
@@ -41,7 +41,7 @@ namespace Avalonia.Controls.Primitives
///
/// Gets the header presenter from the control's template.
///
- public IContentPresenter? HeaderPresenter
+ public ContentPresenter? HeaderPresenter
{
get;
private set;
@@ -57,7 +57,7 @@ namespace Avalonia.Controls.Primitives
}
///
- protected override bool RegisterContentPresenter(IContentPresenter presenter)
+ protected override bool RegisterContentPresenter(ContentPresenter presenter)
{
var result = base.RegisterContentPresenter(presenter);
diff --git a/src/Avalonia.Controls/Primitives/HeaderedItemsControl.cs b/src/Avalonia.Controls/Primitives/HeaderedItemsControl.cs
index d71439ece6..2236dc8fe4 100644
--- a/src/Avalonia.Controls/Primitives/HeaderedItemsControl.cs
+++ b/src/Avalonia.Controls/Primitives/HeaderedItemsControl.cs
@@ -56,7 +56,7 @@ namespace Avalonia.Controls.Primitives
///
/// Gets the header presenter from the control's template.
///
- public IContentPresenter? HeaderPresenter
+ public ContentPresenter? HeaderPresenter
{
get;
private set;
@@ -77,16 +77,16 @@ namespace Avalonia.Controls.Primitives
}
///
- bool IContentPresenterHost.RegisterContentPresenter(IContentPresenter presenter)
+ bool IContentPresenterHost.RegisterContentPresenter(ContentPresenter presenter)
{
return RegisterContentPresenter(presenter);
}
///
- /// Called when an is registered with the control.
+ /// Called when an is registered with the control.
///
/// The presenter.
- protected virtual bool RegisterContentPresenter(IContentPresenter presenter)
+ protected virtual bool RegisterContentPresenter(ContentPresenter presenter)
{
if (presenter.Name == "PART_HeaderPresenter")
{
diff --git a/src/Avalonia.Controls/Primitives/HeaderedSelectingItemsControl.cs b/src/Avalonia.Controls/Primitives/HeaderedSelectingItemsControl.cs
index 88ca1f1fe1..c0075cb389 100644
--- a/src/Avalonia.Controls/Primitives/HeaderedSelectingItemsControl.cs
+++ b/src/Avalonia.Controls/Primitives/HeaderedSelectingItemsControl.cs
@@ -56,7 +56,7 @@ namespace Avalonia.Controls.Primitives
///
/// Gets the header presenter from the control's template.
///
- public IContentPresenter? HeaderPresenter
+ public ContentPresenter? HeaderPresenter
{
get;
private set;
@@ -66,7 +66,7 @@ namespace Avalonia.Controls.Primitives
IAvaloniaList IContentPresenterHost.LogicalChildren => LogicalChildren;
///
- bool IContentPresenterHost.RegisterContentPresenter(IContentPresenter presenter)
+ bool IContentPresenterHost.RegisterContentPresenter(ContentPresenter presenter)
{
return RegisterContentPresenter(presenter);
}
@@ -83,10 +83,10 @@ namespace Avalonia.Controls.Primitives
}
///
- /// Called when an is registered with the control.
+ /// Called when an is registered with the control.
///
/// The presenter.
- protected virtual bool RegisterContentPresenter(IContentPresenter presenter)
+ protected virtual bool RegisterContentPresenter(ContentPresenter presenter)
{
if (presenter.Name == "PART_HeaderPresenter")
{
diff --git a/src/Avalonia.Controls/Primitives/IPopupHost.cs b/src/Avalonia.Controls/Primitives/IPopupHost.cs
index 90fbdcdbec..0aad838b0f 100644
--- a/src/Avalonia.Controls/Primitives/IPopupHost.cs
+++ b/src/Avalonia.Controls/Primitives/IPopupHost.cs
@@ -52,7 +52,7 @@ namespace Avalonia.Controls.Primitives
///
/// Gets the presenter from the control's template.
///
- IContentPresenter? Presenter { get; }
+ ContentPresenter? Presenter { get; }
///
/// Gets or sets whether the popup appears on top of all other windows.
diff --git a/src/Avalonia.Controls/ScrollViewer.cs b/src/Avalonia.Controls/ScrollViewer.cs
index 1b9cb7de34..31c4a7e399 100644
--- a/src/Avalonia.Controls/ScrollViewer.cs
+++ b/src/Avalonia.Controls/ScrollViewer.cs
@@ -644,7 +644,7 @@ namespace Avalonia.Controls
(Presenter as IScrollAnchorProvider)?.UnregisterAnchorCandidate(element);
}
- protected override bool RegisterContentPresenter(IContentPresenter presenter)
+ protected override bool RegisterContentPresenter(ContentPresenter presenter)
{
_childSubscription?.Dispose();
_childSubscription = null;
diff --git a/src/Avalonia.Controls/SplitView/SplitView.cs b/src/Avalonia.Controls/SplitView/SplitView.cs
index b943a01a4b..fed0367d12 100644
--- a/src/Avalonia.Controls/SplitView/SplitView.cs
+++ b/src/Avalonia.Controls/SplitView/SplitView.cs
@@ -279,7 +279,7 @@ namespace Avalonia.Controls
remove => RemoveHandler(PaneOpeningEvent, value);
}
- protected override bool RegisterContentPresenter(IContentPresenter presenter)
+ protected override bool RegisterContentPresenter(ContentPresenter presenter)
{
var result = base.RegisterContentPresenter(presenter);
diff --git a/src/Avalonia.Controls/TabControl.cs b/src/Avalonia.Controls/TabControl.cs
index 5409663621..2b3a00cf3e 100644
--- a/src/Avalonia.Controls/TabControl.cs
+++ b/src/Avalonia.Controls/TabControl.cs
@@ -140,13 +140,13 @@ namespace Avalonia.Controls
internal ItemsPresenter? ItemsPresenterPart { get; private set; }
- internal IContentPresenter? ContentPart { get; private set; }
+ internal ContentPresenter? ContentPart { get; private set; }
///
IAvaloniaList IContentPresenterHost.LogicalChildren => LogicalChildren;
///
- bool IContentPresenterHost.RegisterContentPresenter(IContentPresenter presenter)
+ bool IContentPresenterHost.RegisterContentPresenter(ContentPresenter presenter)
{
return RegisterContentPresenter(presenter);
}
@@ -210,10 +210,10 @@ namespace Avalonia.Controls
}
///
- /// Called when an is registered with the control.
+ /// Called when an is registered with the control.
///
/// The presenter.
- protected virtual bool RegisterContentPresenter(IContentPresenter presenter)
+ protected virtual bool RegisterContentPresenter(ContentPresenter presenter)
{
if (presenter.Name == "PART_SelectedContentHost")
{
diff --git a/src/Avalonia.Controls/ToggleSwitch.cs b/src/Avalonia.Controls/ToggleSwitch.cs
index 29e1b90ca0..a68a022e67 100644
--- a/src/Avalonia.Controls/ToggleSwitch.cs
+++ b/src/Avalonia.Controls/ToggleSwitch.cs
@@ -86,13 +86,13 @@ namespace Avalonia.Controls
set { SetValue(OffContentProperty, value); }
}
- public IContentPresenter? OffContentPresenter
+ public ContentPresenter? OffContentPresenter
{
get;
private set;
}
- public IContentPresenter? OnContentPresenter
+ public ContentPresenter? OnContentPresenter
{
get;
private set;
@@ -142,7 +142,7 @@ namespace Avalonia.Controls
}
}
- protected override bool RegisterContentPresenter(IContentPresenter presenter)
+ protected override bool RegisterContentPresenter(ContentPresenter presenter)
{
var result = base.RegisterContentPresenter(presenter);
diff --git a/src/Avalonia.Controls/TransitioningContentControl.cs b/src/Avalonia.Controls/TransitioningContentControl.cs
index edc1b10d93..21b9c9b765 100644
--- a/src/Avalonia.Controls/TransitioningContentControl.cs
+++ b/src/Avalonia.Controls/TransitioningContentControl.cs
@@ -71,7 +71,7 @@ public class TransitioningContentControl : ContentControl
return result;
}
- protected override bool RegisterContentPresenter(IContentPresenter presenter)
+ protected override bool RegisterContentPresenter(ContentPresenter presenter)
{
if (!base.RegisterContentPresenter(presenter) &&
presenter is ContentPresenter p &&
diff --git a/tests/Avalonia.UnitTests/TestExtensions.cs b/tests/Avalonia.UnitTests/TestExtensions.cs
deleted file mode 100644
index 21a67a8800..0000000000
--- a/tests/Avalonia.UnitTests/TestExtensions.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System;
-using Avalonia.Controls.Presenters;
-using Avalonia.Controls.Primitives;
-using Avalonia.Layout;
-using Avalonia.Styling;
-
-namespace Avalonia.UnitTests
-{
- public static class TestExtensions
- {
- public static void ApplyTemplate(this IContentPresenter presenter) => ((Layoutable)presenter).ApplyTemplate();
- }
-}