From 79b32d573c92eeb926d74155edf3412f6ccb8f49 Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Thu, 15 May 2025 23:09:57 +0800 Subject: [PATCH] feat: add ConfettiCannon. --- README-cn.md | 12 +- README.md | 8 +- .../HandyControlDemo_Code.csproj | 7 + .../Data/DemoInfo.json | 9 +- .../HandyControlDemo_Shared.projitems | 4 + .../Resources/Themes/Basic/Brushes.xaml | 18 +- .../Controls/ConfettiCannonDemo.xaml | 35 ++ .../Controls/ConfettiCannonDemo.xaml.cs | 288 +++++++++++ .../Controls/ConfettiCannon/ConfettiCannon.cs | 473 ++++++++++++++++++ .../ConfettiCannon/ConfettiCannonContainer.cs | 5 + .../Controls/Other/VisualAdornerContainer.cs | 39 ++ .../HandyControl_Shared.projitems | 4 + ...dyControl.Controls.ConfettiCannon.icon.bmp | Bin 0 -> 824 bytes 13 files changed, 889 insertions(+), 13 deletions(-) create mode 100644 src/Shared/HandyControlDemo_Shared/UserControl/Controls/ConfettiCannonDemo.xaml create mode 100644 src/Shared/HandyControlDemo_Shared/UserControl/Controls/ConfettiCannonDemo.xaml.cs create mode 100644 src/Shared/HandyControl_Shared/Controls/ConfettiCannon/ConfettiCannon.cs create mode 100644 src/Shared/HandyControl_Shared/Controls/ConfettiCannon/ConfettiCannonContainer.cs create mode 100644 src/Shared/HandyControl_Shared/Controls/Other/VisualAdornerContainer.cs create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ConfettiCannon.icon.bmp diff --git a/README-cn.md b/README-cn.md index 3643df78..df1eec5d 100644 --- a/README-cn.md +++ b/README-cn.md @@ -205,13 +205,17 @@ Step 4: 开始编码 ## 最新示例 +### ConfettiCannon + +![ConfettiCannon](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/ConfettiCannon.gif) + ### Watermark -![Watermark](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Watermark.png) +![Watermark](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Watermark.png) ### AutoCompleteTextBox -![AutoCompleteTextBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/AutoCompleteTextBox.gif) +![AutoCompleteTextBox](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/AutoCompleteTextBox.gif) ### ElementGroup @@ -221,12 +225,12 @@ Step 4: 开始编码 ![UniformSpacingPanel](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/UniformSpacingPanel.png) +## 历史发布 + ### FlexPanel ![FlexPanel](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/FlexPanel.gif) -## 历史发布 - ### CheckComboBox ![CheckComboBox](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/CheckComboBox.png) diff --git a/README.md b/README.md index eb7b8105..4bdc4651 100644 --- a/README.md +++ b/README.md @@ -193,6 +193,10 @@ Step 4: Enjoy coding ## Latest examples +### ConfettiCannon + +![ConfettiCannon](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ConfettiCannon.gif) + ### Watermark ![Watermark](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Watermark.png) @@ -209,12 +213,12 @@ Step 4: Enjoy coding ![UniformSpacingPanel](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/UniformSpacingPanel.png) +## History publication + ### FlexPanel ![FlexPanel](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/FlexPanel.gif) -## History publication - ### CheckComboBox ![CheckComboBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/CheckComboBox.png) diff --git a/src/Shared/HandyControlDemo_Code/HandyControlDemo_Code.csproj b/src/Shared/HandyControlDemo_Code/HandyControlDemo_Code.csproj index b18f4c2b..f2ad4ff4 100644 --- a/src/Shared/HandyControlDemo_Code/HandyControlDemo_Code.csproj +++ b/src/Shared/HandyControlDemo_Code/HandyControlDemo_Code.csproj @@ -101,6 +101,9 @@ UserControl\Controls\CompareSliderDemo.xaml + + UserControl\Controls\ConfettiCannonDemo.xaml + UserControl\Controls\CoverFlowDemo.xaml @@ -495,6 +498,10 @@ UserControl\Controls\CompareSliderDemo.xaml.cs CompareSliderDemo.xaml + + UserControl\Controls\ConfettiCannonDemo.xaml.cs + ConfettiCannonDemo.xaml + UserControl\Controls\CoverFlowDemo.xaml.cs CoverFlowDemo.xaml diff --git a/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json b/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json index 68798937..a43073cf 100644 --- a/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json +++ b/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json @@ -2,7 +2,7 @@ { "title": "Styles", "selectedIndex": -1, - "group": false, + "group": false, "demoItemList": [ [ "Brush", "BrushDemo", "Brush.Brush", "", "" ], [ "Button", "ButtonDemo", "Brush.ButtonClick", "", "" ], @@ -43,6 +43,7 @@ "group": true, "demoItemList": [ [ "FloatingBlock", "FloatingBlockDemo", "Brush.LikeFilled", "", "Interacting" ], + [ "ConfettiCannon", "ConfettiCannonDemo", "Brush.Favorite", "1", "Interacting" ], [ "PropertyGrid", "PropertyGridDemo", "Brush.PropertyGridEditorPart", "", "DataEntry" ], [ "ImageSelector", "ImageSelectorDemo", "Brush.Image", "", "DataEntry" ], [ "ImageBlock", "ImageBlockDemo", "Brush.ImageStack", "", "DataDisplay" ], @@ -79,7 +80,7 @@ [ "Divider", "DividerDemo", "Brush.DottedSplitter", "", "Layout" ], [ "CirclePanel", "CirclePanelDemo", "Brush.ColorWheel", "", "Layout" ], [ "Grid", "GridDemo", "Brush.GridPane", "", "Layout" ], - [ "FlexPanel", "FlexPanelDemo", "Brush.FlowLayoutPanel", "1", "Layout" ], + [ "FlexPanel", "FlexPanelDemo", "Brush.FlowLayoutPanel", "", "Layout" ], [ "UniformSpacingPanel", "UniformSpacingPanelDemo", "Brush.IncreaseHorizontalSpacing", "1", "Layout" ], [ "RelativePanel", "RelativePanelDemo", "Brush.TransformRelative", "", "Layout" ], [ "WaterfallPanel", "WaterfallPanelDemo", "Brush.Panel", "", "Layout" ], @@ -121,8 +122,8 @@ "group": false, "demoItemList": [ [ "HatchBrushGenerator", "HatchBrushGeneratorDemo", "Brush.DataGenerator", "", "" ], - [ "Morphing_Animation", "GeometryAnimationDemo", "Brush.Animation", "", "" ], - [ "Effects", "EffectsDemo", "Brush.Effects", "", "" ] + [ "MorphingAnimation", "GeometryAnimationDemo", "Brush.Animation", "", "" ], + [ "Effects", "EffectsDemo", "Brush.Effects", "", "" ], ] } ] diff --git a/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems b/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems index 3f7ca4c2..c793f5be 100644 --- a/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems +++ b/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems @@ -64,6 +64,9 @@ AutoCompleteTextBoxDemo.xaml + + ConfettiCannonDemo.xaml + ElementGroupDemo.xaml @@ -551,6 +554,7 @@ Designer MSBuild:Compile + Designer MSBuild:Compile diff --git a/src/Shared/HandyControlDemo_Shared/Resources/Themes/Basic/Brushes.xaml b/src/Shared/HandyControlDemo_Shared/Resources/Themes/Basic/Brushes.xaml index 79b21c74..a38157c0 100644 --- a/src/Shared/HandyControlDemo_Shared/Resources/Themes/Basic/Brushes.xaml +++ b/src/Shared/HandyControlDemo_Shared/Resources/Themes/Basic/Brushes.xaml @@ -11,7 +11,7 @@ - + @@ -57,7 +57,7 @@ - + @@ -71,7 +71,7 @@ - + @@ -1387,5 +1387,17 @@ + + + + + + + + + + + + diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Controls/ConfettiCannonDemo.xaml b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/ConfettiCannonDemo.xaml new file mode 100644 index 00000000..48d5b16e --- /dev/null +++ b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/ConfettiCannonDemo.xaml @@ -0,0 +1,35 @@ + + + + +