add UniformSpacingPanel Demo

This commit is contained in:
NaBian committed 2021-01-05 23:45:12 +08:00
1 parent f069b5236d
commit 968441ad83
21 files changed
+13418 -9

No files matched your search

@@ -439,6 +439,9 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ImageStack_16x.png">
<Link>Resources\Img\LeftMainContent\ImageStack_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\IncreaseHorizontalSpacing_16x.png">
<Link>Resources\Img\LeftMainContent\IncreaseHorizontalSpacing_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Dynamic_16x.png">
<Link>Resources\Img\LeftMainContent\Dynamic_16x.png</Link>
</Resource>
@@ -440,6 +440,9 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ImageStack_16x.png">
<Link>Resources\Img\LeftMainContent\ImageStack_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\IncreaseHorizontalSpacing_16x.png">
<Link>Resources\Img\LeftMainContent\IncreaseHorizontalSpacing_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Dynamic_16x.png">
<Link>Resources\Img\LeftMainContent\Dynamic_16x.png</Link>
</Resource>
@@ -113,6 +113,9 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\DrawerDemoCtl.xaml">
<Link>UserControl\Controls\DrawerDemoCtl.xaml</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\FlexPanelDemoCtl.xaml">
<Link>UserControl\Controls\FlexPanelDemoCtl.xaml</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\FlipClockDemoCtl.xaml">
<Link>UserControl\Controls\FlipClockDemoCtl.xaml</Link>
</Resource>
@@ -245,6 +248,9 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\TransitioningContentControlDemoCtl.xaml">
<Link>UserControl\Controls\TransitioningContentControlDemoCtl.xaml</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\UniformSpacingPanelDemoCtl.xaml">
<Link>UserControl\Controls\UniformSpacingPanelDemoCtl.xaml</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\WaterfallPanelDemoCtl.xaml">
<Link>UserControl\Controls\WaterfallPanelDemoCtl.xaml</Link>
</Resource>
@@ -678,6 +684,10 @@
<Link>UserControl\Controls\TransitioningContentControlDemoCtl.xaml.cs</Link>
<DependentUpon>TransitioningContentControlDemoCtl.xaml</DependentUpon>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\UniformSpacingPanelDemoCtl.xaml.cs">
<Link>UserControl\Controls\UniformSpacingPanelDemoCtl.xaml.cs</Link>
<DependentUpon>UniformSpacingPanelDemoCtl.xaml</DependentUpon>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\WaterfallPanelDemoCtl.xaml.cs">
<Link>UserControl\Controls\WaterfallPanelDemoCtl.xaml.cs</Link>
<DependentUpon>WaterfallPanelDemoCtl.xaml</DependentUpon>
@@ -1,4 +1,4 @@
[
[
{
"title": "Styles",
"selectedIndex": -1,
@@ -79,6 +79,7 @@
[ "CirclePanel", "CirclePanelDemoCtl", "ColorWheel_16x", "" ],
[ "Grid", "GridDemoCtl", "GridPane_16x", "" ],
[ "FlexPanel", "FlexPanelDemoCtl", "layout-FlexLayout-16", "1" ],
[ "UniformSpacingPanel", "UniformSpacingPanelDemoCtl", "IncreaseHorizontalSpacing_16x", "1" ],
[ "RelativePanel", "RelativePanelDemoCtl", "TransformRelative_16x", "" ],
[ "WaterfallPanel", "WaterfallPanelDemoCtl", "Panel_16x", "" ],
[ "HoneycombPanel", "HoneycombPanelDemoCtl", "PolygonHexagon_16x", "" ],
@@ -105,7 +106,7 @@
[ "Sprite", "SpriteDemoCtl", "HandyControl", "" ],
[ "Notification", "NotificationDemoCtl", "Procedure_16x", "" ],
[ "Dialog", "DialogDemoCtl", "Dialog_16x", "" ],
[ "Screenshot", "ScreenshotDemoCtl", "WindowScreenshot_16x", "1" ],
[ "Screenshot", "ScreenshotDemoCtl", "WindowScreenshot_16x", "" ],
[ "Window", "WindowDemoCtl", "WindowsForm_16x", "" ]
]
},
@@ -118,4 +119,4 @@
[ "Effects", "EffectsDemoCtl", "Effects_16x", "" ]
]
}
]
]
@@ -254,6 +254,9 @@
<Compile Include="$(MSBuildThisFileDirectory)UserControl\Controls\TransitioningContentControlDemoCtl.xaml.cs">
<DependentUpon>TransitioningContentControlDemoCtl.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)UserControl\Controls\UniformSpacingPanelDemoCtl.xaml.cs">
<DependentUpon>UniformSpacingPanelDemoCtl.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)UserControl\Controls\WaterfallPanelDemoCtl.xaml.cs">
<DependentUpon>WaterfallPanelDemoCtl.xaml</DependentUpon>
</Compile>
@@ -796,6 +799,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)UserControl\Controls\UniformSpacingPanelDemoCtl.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)UserControl\Controls\WaterfallPanelDemoCtl.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -2365,6 +2365,17 @@ namespace HandyControlDemo.Properties.Langs
}
}
/// <summary>
/// 查找类似 等间距布局 的本地化字符串。
/// </summary>
public static string UniformSpacingPanel
{
get
{
return ResourceManager.GetString("UniformSpacingPanel", resourceCulture);
}
}
/// <summary>
/// 查找类似 上传文件 的本地化字符串。
/// </summary>
@@ -768,4 +768,7 @@
<data name="OpenTouchDragMoveWindow" xml:space="preserve">
<value>open touch drag move window</value>
</data>
<data name="UniformSpacingPanel" xml:space="preserve">
<value>UniformSpacingPanel</value>
</data>
</root>
@@ -768,4 +768,7 @@
<data name="OpenTouchDragMoveWindow" xml:space="preserve">
<value>open touch drag move window</value>
</data>
<data name="UniformSpacingPanel" xml:space="preserve">
<value>UniformSpacingPanel</value>
</data>
</root>
@@ -768,4 +768,7 @@
<data name="OpenTouchDragMoveWindow" xml:space="preserve">
<value>open touch drag move window</value>
</data>
<data name="UniformSpacingPanel" xml:space="preserve">
<value>UniformSpacingPanel</value>
</data>
</root>
@@ -768,4 +768,7 @@
<data name="OpenTouchDragMoveWindow" xml:space="preserve">
<value>open touch drag move window</value>
</data>
<data name="UniformSpacingPanel" xml:space="preserve">
<value>UniformSpacingPanel</value>
</data>
</root>
@@ -768,4 +768,7 @@
<data name="OpenTouchDragMoveWindow" xml:space="preserve">
<value>open touch drag move window</value>
</data>
<data name="UniformSpacingPanel" xml:space="preserve">
<value>UniformSpacingPanel</value>
</data>
</root>
@@ -768,4 +768,7 @@
<data name="OpenTouchDragMoveWindow" xml:space="preserve">
<value>open touch drag move window</value>
</data>
<data name="UniformSpacingPanel" xml:space="preserve">
<value>UniformSpacingPanel</value>
</data>
</root>
@@ -768,4 +768,7 @@
<data name="OpenTouchDragMoveWindow" xml:space="preserve">
<value>点击打开触摸拖动窗口</value>
</data>
<data name="UniformSpacingPanel" xml:space="preserve">
<value>等间距布局</value>
</data>
</root>
@@ -768,4 +768,7 @@
<data name="OpenTouchDragMoveWindow" xml:space="preserve">
<value>open touch drag move window</value>
</data>
<data name="UniformSpacingPanel" xml:space="preserve">
<value>UniformSpacingPanel</value>
</data>
</root>
@@ -768,4 +768,7 @@
<data name="OpenTouchDragMoveWindow" xml:space="preserve">
<value>open touch drag move window</value>
</data>
<data name="UniformSpacingPanel" xml:space="preserve">
<value>UniformSpacingPanel</value>
</data>
</root>
@@ -246,6 +246,7 @@ namespace HandyControlDemo.Properties.Langs
OnPropertyChanged(nameof(TreeView));
OnPropertyChanged(nameof(Try2CloseApp));
OnPropertyChanged(nameof(Type));
OnPropertyChanged(nameof(UniformSpacingPanel));
OnPropertyChanged(nameof(UploadFile));
OnPropertyChanged(nameof(UploadStr));
OnPropertyChanged(nameof(Visibility));
@@ -1301,6 +1302,11 @@ namespace HandyControlDemo.Properties.Langs
/// </summary>
public string Type => Lang.Type;
/// <summary>
/// 查找类似 等间距布局 的本地化字符串。
/// </summary>
public string UniformSpacingPanel => Lang.UniformSpacingPanel;
/// <summary>
/// 查找类似 上传文件 的本地化字符串。
/// </summary>
Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

@@ -0,0 +1,39 @@
<UserControl x:Class="HandyControlDemo.UserControl.UniformSpacingPanelDemoCtl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:langs="clr-namespace:HandyControlDemo.Properties.Langs"
xmlns:ex="clr-namespace:HandyControlDemo.Tools.Extension"
Background="{DynamicResource RegionBrush}">
<hc:TransitioningContentControl>
<hc:SimpleStackPanel Margin="32">
<hc:UniformSpacingPanel Spacing="10">
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
</hc:UniformSpacingPanel>
<hc:Divider LineStrokeDashArray="2,2"/>
<hc:UniformSpacingPanel Spacing="10" Orientation="Vertical">
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
</hc:UniformSpacingPanel>
<hc:Divider LineStrokeDashArray="2,2"/>
<hc:UniformSpacingPanel Spacing="10" Width="300" ChildWrapping="Wrap" HorizontalAlignment="Left">
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
</hc:UniformSpacingPanel>
<hc:Divider LineStrokeDashArray="2,2"/>
<hc:UniformSpacingPanel Spacing="10" Orientation="Vertical" Height="70" ChildWrapping="Wrap" HorizontalAlignment="Left">
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
<Button Content="{ex:Lang Key={x:Static langs:LangKeys.ContentDemoStr}}"/>
</hc:UniformSpacingPanel>
</hc:SimpleStackPanel>
</hc:TransitioningContentControl>
</UserControl>
@@ -0,0 +1,10 @@
namespace HandyControlDemo.UserControl
{
public partial class UniformSpacingPanelDemoCtl
{
public UniformSpacingPanelDemoCtl()
{
InitializeComponent();
}
}
}
@@ -135,7 +135,7 @@ namespace HandyControl.Controls
itemWidthSet ? itemWidth : child.DesiredSize.Width,
itemHeightSet ? itemHeight : child.DesiredSize.Height);
if (childWrapping == VisualWrapping.Wrap && MathHelper.GreaterThan(curLineSize.U + sz.U, uvConstraint.U))
if (childWrapping == VisualWrapping.Wrap && MathHelper.GreaterThan(curLineSize.U + sz.U + spacing, uvConstraint.U))
{
panelSize.U = Math.Max(curLineSize.U, panelSize.U);
panelSize.V += curLineSize.V + spacing;
@@ -153,8 +153,9 @@ namespace HandyControl.Controls
else
{
curLineSize.U += isFirst ? sz.U : sz.U + spacing;
isFirst = false;
curLineSize.V = Math.Max(sz.V, curLineSize.V);
isFirst = false;
}
}
@@ -180,6 +181,7 @@ namespace HandyControl.Controls
var childWrapping = ChildWrapping;
var children = InternalChildren;
var isFirst = true;
for (int i = 0, count = children.Count; i < count; i++)
{
@@ -191,7 +193,7 @@ namespace HandyControl.Controls
itemWidthSet ? itemWidth : child.DesiredSize.Width,
itemHeightSet ? itemHeight : child.DesiredSize.Height);
if (childWrapping == VisualWrapping.Wrap && MathHelper.GreaterThan(curLineSize.U + sz.U, uvFinalSize.U))
if (childWrapping == VisualWrapping.Wrap && MathHelper.GreaterThan(curLineSize.U + sz.U + spacing, uvFinalSize.U))
{
ArrangeLine(accumulatedV, curLineSize.V, firstInLine, i, useItemU, itemU, spacing);
@@ -205,12 +207,16 @@ namespace HandyControl.Controls
accumulatedV += sz.V + spacing;
curLineSize = new UVSize(_orientation);
}
firstInLine = i;
isFirst = true;
}
else
{
curLineSize.U += sz.U;
curLineSize.U += isFirst ? sz.U : sz.U + spacing;
curLineSize.V = Math.Max(sz.V, curLineSize.V);
isFirst = false;
}
}
File diff suppressed because it is too large. Load diff