diff --git a/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj b/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
index 66eac0be..e9ef66a4 100644
--- a/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
+++ b/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
@@ -49,6 +49,9 @@
+
+ Data\DemoInfo.json
+
Resources\Img\Cover.png
@@ -166,10 +169,10 @@
Resources\Img\Flag\en.png
-
+
Resources\Img\Flag\fa.png
-
+
Resources\Img\Flag\fr.png
@@ -442,15 +445,18 @@
Resources\Img\LeftMainContent\TransitioningContentControl_16x.png
+
+ Resources\Img\LeftMainContent\View_Portrait_16x.png
+
Properties\Langs\Lang.en.resx
-
+
Properties\Langs\Lang.fa.resx
-
+
Properties\Langs\Lang.fr.resx
@@ -472,4 +478,4 @@
-
+
\ No newline at end of file
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 44e96af7..e5a658ad 100644
--- a/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj
+++ b/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj
@@ -430,6 +430,9 @@
TextTemplatingFileGenerator
MessageToken.cs
+
+ Resources\Img\LeftMainContent\View_Portrait_16x.png
+
Resources\Img\LeftMainContent\TransitioningContentControl_16x.png
@@ -509,7 +512,11 @@
Resources\Img\LeftMainContent\RepeatButton_16x.png
-
+
+
+ Data\DemoInfo.json
+
+
\ No newline at end of file
diff --git a/src/Net_GE45/HandyControlDemo_Net_GE45/DrawerDemoCtl.xaml b/src/Net_GE45/HandyControlDemo_Net_GE45/DrawerDemoCtl.xaml
new file mode 100644
index 00000000..d637c9a5
--- /dev/null
+++ b/src/Net_GE45/HandyControlDemo_Net_GE45/DrawerDemoCtl.xaml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Net_GE45/HandyControlDemo_Net_GE45/DrawerDemoCtl.xaml.cs b/src/Net_GE45/HandyControlDemo_Net_GE45/DrawerDemoCtl.xaml.cs
new file mode 100644
index 00000000..81259d96
--- /dev/null
+++ b/src/Net_GE45/HandyControlDemo_Net_GE45/DrawerDemoCtl.xaml.cs
@@ -0,0 +1,10 @@
+namespace HandyControlDemo.UserControl
+{
+ public partial class DrawerDemoCtl
+ {
+ public DrawerDemoCtl()
+ {
+ InitializeComponent();
+ }
+ }
+}
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 5cf76e7a..97ae3d92 100644
--- a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj
+++ b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj
@@ -156,6 +156,9 @@
True
Lang.resx
+
+ DrawerDemoCtl.xaml
+
@@ -496,6 +499,9 @@
TextTemplatingFileGenerator
MessageToken.cs
+
+ Resources\Img\LeftMainContent\View_Portrait_16x.png
+
Resources\Img\LeftMainContent\TransitioningContentControl_16x.png
@@ -580,6 +586,17 @@
Resources\Registry.txt
+
+
+ Data\DemoInfo.json
+
+
+
+
+ Designer
+ MSBuild:Compile
+
+
\ No newline at end of file
diff --git a/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json b/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json
new file mode 100644
index 00000000..6c5f4f76
--- /dev/null
+++ b/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json
@@ -0,0 +1,106 @@
+[
+ {
+ "title": "Styles",
+ "demoItemList": [
+ [ "Brush", "BrushDemoCtl", "Brush_16x", "" ],
+ [ "Button", "ButtonDemoCtl", "ButtonClick_16x", "" ],
+ [ "RepeatButton", "RepeatButtonDemoCtl", "RepeatButton_16x", "" ],
+ [ "ToggleButton", "ToggleButtonDemoCtl", "Toggle_16x", "" ],
+ [ "RadioButton", "RadioButtonDemoCtl", "RadioButton_16x", "" ],
+ [ "CheckBox", "CheckBoxDemoCtl", "CheckBox_16x", "" ],
+ [ "ScrollViewer", "NativeScrollViewerDemoCtl", "ScrollBox_16x", "" ],
+ [ "Slider", "SliderDemoCtl", "Slider_16x", "" ],
+ [ "TextBlock", "TextBlockDemoCtl", "TextBlock_16x", "" ],
+ [ "TextBox", "NativeTextBoxDemoCtl", "TextBox_16x", "" ],
+ [ "ComboBox", "NativeComboBoxDemoCtl", "ComboBox_16x", "" ],
+ [ "PasswordBox", "NativePasswordBoxDemoCtl", "PasswordBox_16x", "" ],
+ [ "Expander", "ExpanderDemoCtl", "Expander_16x", "" ],
+ [ "ProgressBar", "NativeProgressBarDemoCtl", "ProgressBar_16x", "" ],
+ [ "Calendar", "CalendarDemoCtl", "Calendar_16x", "" ],
+ [ "DatePicker", "NativeDatePickerDemoCtl", "DatePicker_16x", "" ],
+ [ "TabControl", "NativeTabControlDemoCtl", "TabPage_16x", "" ],
+ [ "DataGrid", "DataGridDemoCtl", "DataGrid_16x", "" ],
+ [ "TreeView", "TreeViewDemoCtl", "TreeView_16x", "" ],
+ [ "ListBox", "ListBoxDemoCtl", "ListBox_16x", "" ],
+ [ "ListView", "ListViewDemoCtl", "ListView_16x", "" ],
+ [ "GroupBox", "GroupBoxDemoCtl", "GroupBox_16x", "" ],
+ [ "Menu", "MenuDemoCtl", "ContextMenu_16x", "" ],
+ [ "RichTextBox", "RichTextBoxDemoCtl", "RichTextBox_16x", "" ],
+ [ "ToolBar", "ToolBarDemoCtl", "ToolBar_16x", "" ],
+ [ "Border", "BorderDemoCtl", "BorderElement_16x", "" ],
+ [ "Label", "LabelDemoCtl", "Label_16x", "" ]
+ ]
+ },
+ {
+ "title": "Controls",
+ "demoItemList": [
+ [ "FloatingBlock", "FloatingBlockDemoCtl", "thumbs_up", "" ],
+ [ "ImageBlock", "ImageBlockDemoCtl", "ImageStack_16x", "" ],
+ [ "Magnifier", "MagnifierDemoCtl", "Search_16x", "" ],
+ [ "Gravatar", "GravatarDemoCtl", "User_16x", "" ],
+ [ "Badge", "BadgeDemoCtl", "DotLarge_16x", "" ],
+ [ "GotoTop", "GotoTopDemoCtl", "GoToTop_16x", "" ],
+ [ "SplitButton", "SplitButtonDemoCtl", "SplitButton_16x", "1" ],
+ [ "ButtonGroup", "ButtonGroupDemoCtl", "ButtonGroup_16x", "" ],
+ [ "ProgressButton", "ProgressButtonDemoCtl", "ProgressButton_16x", "" ],
+ [ "ChatBubble", "ChatBubbleDemoCtl", "Bubble_16xLG", "" ],
+ [ "Poptip", "PoptipDemoCtl", "PopupCursor_16x", "1" ],
+ [ "NotifyIcon", "NotifyIconDemoCtl", "NotificationHub_16x", "" ],
+ [ "NumericUpDown", "NumericUpDownDemoCtl", "NumericListBox_16x", "" ],
+ [ "TextBox", "TextBoxDemoCtl", "TextBox_16x", "" ],
+ [ "ComboBox", "ComboBoxDemoCtl", "ComboBox_16x", "" ],
+ [ "PasswordBox", "PasswordBoxDemoCtl", "PasswordBox_16x", "" ],
+ [ "DatePicker", "DatePickerDemoCtl", "DatePicker_16x", "" ],
+ [ "Clock", "ClockDemoCtl", "Time_color_16x", "" ],
+ [ "TimePicker", "TimePickerDemoCtl", "TimePicker_16x", "" ],
+ [ "CalendarWithClock", "CalendarWithClockDemoCtl", "Calendar_16x", "" ],
+ [ "DateTimePicker", "DateTimePickerDemoCtl", "DatePicker_16x", "" ],
+ [ "Transfer", "TransferDemoCtl", "Transfer_16x", "" ],
+ [ "FlipClock", "FlipClockDemoCtl", "FlipVertical_16x", "" ],
+ [ "Rate", "RateDemoCtl", "Star", "" ],
+ [ "Shield", "ShieldDemoCtl", "Shield_16x", "" ],
+ [ "SearchBar", "SearchBarDemoCtl", "Search_16x", "" ],
+ [ "Tag", "TagDemoCtl", "Tag_16x", "" ],
+ [ "GifImage", "GifImageDemoCtl", "Animation_16x", "" ],
+ [ "OutlineText", "OutlineTextDemoCtl", "TextBlock_16x", "" ],
+ [ "RunningBlock", "RunningBlockDemoCtl", "Dynamic_16x", "" ],
+ [ "Card", "CardDemoCtl", "VSO_Card_16x", "" ],
+ [ "Divider", "DividerDemoCtl", "DottedSplitter_16x", "1" ],
+ [ "CirclePanel", "CirclePanelDemoCtl", "ColorWheel_16x", "" ],
+ [ "Grid", "GridDemoCtl", "GridPane_16x", "" ],
+ [ "WaterfallPanel", "WaterfallPanelDemoCtl", "Panel_16x", "" ],
+ [ "HoneycombPanel", "HoneycombPanelDemoCtl", "PolygonHexagon_16x", "" ],
+ [ "TransitioningContentControl", "TransitioningContentControlDemoCtl", "TransitioningContentControl_16x", "" ],
+ [ "Drawer", "DrawerDemoCtl", "View_Portrait_16x", "1" ],
+ [ "CoverView", "CoverViewDemoCtl", "DetailDataView_16x", "" ],
+ [ "CoverFlow", "CoverFlowDemoCtl", "LinearCarousel_16x", "" ],
+ [ "ProgressBar", "ProgressBarDemoCtl", "ProgressBar_16x", "" ],
+ [ "StepBar", "StepBarDemoCtl", "Flow_16x", "" ],
+ [ "Growl", "GrowlDemoCtl", "Message_16x", "" ],
+ [ "Loading", "LoadingDemoCtl", "Loading_Blue_16x", "" ],
+ [ "ImageBrowser", "ImageBrowserDemoCtl", "ImageBrowser_16x", "" ],
+ [ "ColorPicker", "ColorPickerDemoCtl", "ColorPalette_16x", "" ],
+ [ "Carousel", "CarouselDemoCtl", "Carousel_16x", "" ],
+ [ "CompareSlider", "CompareSliderDemoCtl", "SplitterControl_16x", "" ],
+ [ "PreviewSlider", "PreviewSliderDemoCtl", "HoverMenu_16x", "" ],
+ [ "RangeSlider", "RangeSliderDemoCtl", "brackets_Square_16xLG", "" ],
+ [ "TimeBar", "TimeBarDemoCtl", "Timeline_16x", "" ],
+ [ "Pagination", "PaginationDemoCtl", "Paginator_16x", "" ],
+ [ "AnimationPath", "AnimationPathDemoCtl", "Path_16x", "" ],
+ [ "TabControl", "TabControlDemoCtl", "TabPage_16x", "" ],
+ [ "SideMenu", "SideMenuDemoCtl", "MainMenuControl_16x", "" ],
+ [ "ScrollViewer", "ScrollViewerDemoCtl", "ScrollBox_16x", "" ],
+ [ "Sprite", "SpriteDemoCtl", "HandyControl", "" ],
+ [ "Notification", "NotificationDemoCtl", "Procedure_16x", "" ],
+ [ "Dialog", "DialogDemoCtl", "Dialog_16x", "" ],
+ [ "Window", "WindowDemoCtl", "WindowsForm_16x", "" ]
+ ]
+ },
+ {
+ "title": "Tools",
+ "demoItemList": [
+ [ "HatchBrushGenerator", "HatchBrushGeneratorDemoCtl", "DataGenerator_16x", "" ],
+ [ "Morphing Animation", "GeometryAnimationDemoCtl", "Animation_16x", "1" ]
+ ]
+ }
+]
\ No newline at end of file
diff --git a/src/Shared/HandyControlDemo_Shared/Data/Model/DemoInfoModel.cs b/src/Shared/HandyControlDemo_Shared/Data/Model/DemoInfoModel.cs
new file mode 100644
index 00000000..30149de4
--- /dev/null
+++ b/src/Shared/HandyControlDemo_Shared/Data/Model/DemoInfoModel.cs
@@ -0,0 +1,34 @@
+using System.Collections.Generic;
+using GalaSoft.MvvmLight;
+
+namespace HandyControlDemo.Data
+{
+ public class DemoInfoModel : ViewModelBase
+ {
+ private string _title;
+
+ public string Title
+ {
+ get => _title;
+#if netle40
+ set => Set(nameof(Title), ref _title, value);
+#else
+ set => Set(ref _title, value);
+#endif
+ }
+
+ private int _selectedIndex = -1;
+
+ public int SelectedIndex
+ {
+ get => _selectedIndex;
+#if netle40
+ set => Set(nameof(SelectedIndex), ref _selectedIndex, value);
+#else
+ set => Set(ref _selectedIndex, value);
+#endif
+ }
+
+ public IList DemoItemList { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/Shared/HandyControlDemo_Shared/Data/Model/DemoItemModel.cs b/src/Shared/HandyControlDemo_Shared/Data/Model/DemoItemModel.cs
new file mode 100644
index 00000000..e4c6501c
--- /dev/null
+++ b/src/Shared/HandyControlDemo_Shared/Data/Model/DemoItemModel.cs
@@ -0,0 +1,13 @@
+namespace HandyControlDemo.Data
+{
+ public class DemoItemModel
+ {
+ public string Name { get; set; }
+
+ public string TargetCtlName { get; set; }
+
+ public string ImageName { get; set; }
+
+ public bool IsNew { get; set; }
+ }
+}
diff --git a/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems b/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems
index ec4ff019..7ad8d822 100644
--- a/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems
+++ b/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems
@@ -21,6 +21,8 @@
+
+
diff --git a/src/Shared/HandyControlDemo_Shared/MainWindow.xaml.cs b/src/Shared/HandyControlDemo_Shared/MainWindow.xaml.cs
index ec24646f..b317b980 100644
--- a/src/Shared/HandyControlDemo_Shared/MainWindow.xaml.cs
+++ b/src/Shared/HandyControlDemo_Shared/MainWindow.xaml.cs
@@ -18,7 +18,6 @@ namespace HandyControlDemo
{
base.OnInitialized(e);
- Messenger.Default.Send