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 @@ +