From a794c2a2c07d2411f07667878c9f151ded0fa060 Mon Sep 17 00:00:00 2001
From: NaBian <836904362@qq.com>
Date: Wed, 13 May 2020 23:52:45 +0800
Subject: [PATCH] now you can use ItemsSource on Carousel
---
.../UserControl/Controls/CarouselDemoCtl.xaml | 2 +-
.../Controls/{Other => Carousel}/Carousel.cs | 177 ++++++++++++++++--
.../Controls/Carousel/CarouselItem.cs | 9 +
.../Controls/Cover/CoverView/CoverView.cs | 12 +-
.../HandyControl_Shared.projitems | 3 +-
.../Themes/Styles/Carousel.xaml | 90 ++++++++-
6 files changed, 259 insertions(+), 34 deletions(-)
rename src/Shared/HandyControl_Shared/Controls/{Other => Carousel}/Carousel.cs (65%)
create mode 100644 src/Shared/HandyControl_Shared/Controls/Carousel/CarouselItem.cs
diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Controls/CarouselDemoCtl.xaml b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/CarouselDemoCtl.xaml
index 89bbeefc..889109ad 100644
--- a/src/Shared/HandyControlDemo_Shared/UserControl/Controls/CarouselDemoCtl.xaml
+++ b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/CarouselDemoCtl.xaml
@@ -9,7 +9,7 @@
-
+
diff --git a/src/Shared/HandyControl_Shared/Controls/Other/Carousel.cs b/src/Shared/HandyControl_Shared/Controls/Carousel/Carousel.cs
similarity index 65%
rename from src/Shared/HandyControl_Shared/Controls/Other/Carousel.cs
rename to src/Shared/HandyControl_Shared/Controls/Carousel/Carousel.cs
index 47ac493a..6ff7f180 100644
--- a/src/Shared/HandyControl_Shared/Controls/Other/Carousel.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Carousel/Carousel.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
@@ -21,13 +22,11 @@ namespace HandyControl.Controls
[DefaultProperty("Items")]
[ContentProperty("Items")]
[TemplatePart(Name = ElementPanelPage, Type = typeof(Panel))]
- [TemplatePart(Name = ElementItemsControl, Type = typeof(ItemsPresenter))]
- public class Carousel : ListBox, IDisposable
+ public class Carousel : SimpleItemsControl, IDisposable
{
#region Constants
private const string ElementPanelPage = "PART_PanelPage";
- private const string ElementItemsControl = "PART_ItemsControl";
#endregion Constants
@@ -39,8 +38,6 @@ namespace HandyControl.Controls
private bool _appliedTemplate;
- private ItemsPresenter _itemsControl;
-
private int _pageIndex = -1;
private RadioButton _selectedButton;
@@ -49,6 +46,12 @@ namespace HandyControl.Controls
private readonly List _widthList = new List();
+ private readonly Dictionary