diff --git a/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj b/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
index f9dad817..9243d394 100644
--- a/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
+++ b/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
@@ -359,6 +359,12 @@
Resources\Img\LeftMainContent\VSO_Card_16x.png
+
+ Resources\Img\LeftMainContent\ImageStack_16x.png
+
+
+ Resources\Img\Dance.png
+
diff --git a/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj b/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj
index 39ce5905..b4a33b11 100644
--- a/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj
+++ b/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj
@@ -396,6 +396,12 @@
TextTemplatingFileGenerator
MessageToken.cs
+
+ Resources\Img\Dance.png
+
+
+ Resources\Img\LeftMainContent\ImageStack_16x.png
+
Resources\Img\LeftMainContent\VSO_Card_16x.png
diff --git a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj
index b78eac34..e568c938 100644
--- a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj
+++ b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj
@@ -458,6 +458,12 @@
TextTemplatingFileGenerator
MessageToken.cs
+
+ Resources\Img\Dance.png
+
+
+ Resources\Img\LeftMainContent\ImageStack_16x.png
+
Resources\Img\LeftMainContent\VSO_Card_16x.png
diff --git a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs
index 81f4aaab..2c3e791a 100644
--- a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs
+++ b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs
@@ -104,6 +104,8 @@
public static readonly string MagnifierDemoCtl = nameof(MagnifierDemoCtl);
+ public static readonly string ImageBlockDemoCtl = nameof(ImageBlockDemoCtl);
+
public static readonly string ButtonDemoCtl = nameof(ButtonDemoCtl);
public static readonly string RepeatButtonDemoCtl = nameof(RepeatButtonDemoCtl);
diff --git a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt
index 9dd5242f..c5d3944e 100644
--- a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt
+++ b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt
@@ -54,7 +54,8 @@ var controlList = new List
"RangeSliderDemoCtl",
"ButtonGroupDemoCtl",
"CardDemoCtl",
- "MagnifierDemoCtl"
+ "MagnifierDemoCtl",
+ "ImageBlockDemoCtl"
};
var styleList = new List
{
diff --git a/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems b/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems
index 29c71932..8c3ece37 100644
--- a/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems
+++ b/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems
@@ -54,6 +54,9 @@
CardDemoCtl.xaml
+
+ ImageBlockDemoCtl.xaml
+
MagnifierDemoCtl.xaml
@@ -423,6 +426,10 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs
index 510ba758..ce60584b 100644
--- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs
+++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs
@@ -690,6 +690,15 @@ namespace HandyControlDemo.Properties.Langs {
}
}
+ ///
+ /// 查找类似 图片块 的本地化字符串。
+ ///
+ public static string ImageBlock {
+ get {
+ return ResourceManager.GetString("ImageBlock", resourceCulture);
+ }
+ }
+
///
/// 查找类似 图片浏览器 的本地化字符串。
///
diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx
index fcdb3a41..824b75e4 100644
--- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx
+++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx
@@ -630,4 +630,7 @@
Magnifier
+
+ ImageBlock
+
\ No newline at end of file
diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx
index 9b30e734..2cc4d56b 100644
--- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx
+++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx
@@ -630,4 +630,7 @@
放大镜
+
+ 图片块
+
\ No newline at end of file
diff --git a/src/Shared/HandyControlDemo_Shared/Resources/Img/Dance.png b/src/Shared/HandyControlDemo_Shared/Resources/Img/Dance.png
new file mode 100644
index 00000000..65b367fb
Binary files /dev/null and b/src/Shared/HandyControlDemo_Shared/Resources/Img/Dance.png differ
diff --git a/src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/ImageStack_16x.png b/src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/ImageStack_16x.png
new file mode 100644
index 00000000..62f6c66b
Binary files /dev/null and b/src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/ImageStack_16x.png differ
diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Controls/ImageBlockDemoCtl.xaml b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/ImageBlockDemoCtl.xaml
new file mode 100644
index 00000000..e0db05bd
--- /dev/null
+++ b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/ImageBlockDemoCtl.xaml
@@ -0,0 +1,6 @@
+
+
+
diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Controls/ImageBlockDemoCtl.xaml.cs b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/ImageBlockDemoCtl.xaml.cs
new file mode 100644
index 00000000..abf2962a
--- /dev/null
+++ b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/ImageBlockDemoCtl.xaml.cs
@@ -0,0 +1,10 @@
+namespace HandyControlDemo.UserControl
+{
+ public partial class ImageBlockDemoCtl
+ {
+ public ImageBlockDemoCtl()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml b/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml
index f4d14f70..2d8d68d4 100644
--- a/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml
+++ b/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml
@@ -195,6 +195,11 @@
+
+
+
+
+
@@ -330,7 +335,7 @@
-
+
diff --git a/src/Shared/HandyControl_Shared/Controls/Image/ImageBlock.cs b/src/Shared/HandyControl_Shared/Controls/Image/ImageBlock.cs
new file mode 100644
index 00000000..8a55f7b8
--- /dev/null
+++ b/src/Shared/HandyControl_Shared/Controls/Image/ImageBlock.cs
@@ -0,0 +1,46 @@
+using System.Windows;
+using System.Windows.Media;
+using HandyControl.Data;
+
+namespace HandyControl.Controls
+{
+ public class ImageBlock : FrameworkElement
+ {
+ public static readonly DependencyProperty SourceProperty = DependencyProperty.Register(
+ "Source", typeof(ImageSource), typeof(ImageBlock), new FrameworkPropertyMetadata(default(ImageSource),
+ FrameworkPropertyMetadataOptions.AffectsMeasure | FrameworkPropertyMetadataOptions.AffectsRender));
+
+ public ImageSource Source
+ {
+ get => (ImageSource) GetValue(SourceProperty);
+ set => SetValue(SourceProperty, value);
+ }
+
+ public static readonly DependencyProperty ColumnsProperty = DependencyProperty.Register(
+ "Columns", typeof(int), typeof(ImageBlock), new FrameworkPropertyMetadata(ValueBoxes.Int1Box,
+ FrameworkPropertyMetadataOptions.AffectsMeasure | FrameworkPropertyMetadataOptions.AffectsRender));
+
+ public int Columns
+ {
+ get => (int) GetValue(ColumnsProperty);
+ set => SetValue(ColumnsProperty, value);
+ }
+
+ public static readonly DependencyProperty RowsProperty = DependencyProperty.Register(
+ "Rows", typeof(int), typeof(ImageBlock), new FrameworkPropertyMetadata(ValueBoxes.Int1Box,
+ FrameworkPropertyMetadataOptions.AffectsMeasure | FrameworkPropertyMetadataOptions.AffectsRender));
+
+ public int Rows
+ {
+ get => (int) GetValue(RowsProperty);
+ set => SetValue(RowsProperty, value);
+ }
+
+ protected override void OnRender(DrawingContext dc)
+ {
+ var imageSource = Source;
+
+ if (imageSource != null) dc.DrawImage(imageSource, new Rect(new Point(), RenderSize));
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems
index 95447ffc..bfb0b9f6 100644
--- a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems
+++ b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems
@@ -19,6 +19,7 @@
+