From 4778f2a73f43d3c6895db8dc414cc0dbbe4915f5 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Thu, 6 Jul 2023 14:04:12 +0200 Subject: [PATCH 01/13] Init --- components/HeaderedControls/OpenSolution.bat | 3 + .../samples/Assets/BisonBadlandsChillin.jpg | Bin 0 -> 84324 bytes .../samples/Assets/HeaderedContentControl.png | Bin 0 -> 2802 bytes .../samples/Assets/HeaderedItemsControl.png | Bin 0 -> 2728 bytes .../HeaderedControls/samples/Assets/Sunny.png | Bin 0 -> 5352 bytes .../samples/Dependencies.props | 31 ++++ .../samples/HeaderedContentControl.md | 45 ++++++ .../HeaderedContentControlComplexSample.xaml | 27 ++++ ...eaderedContentControlComplexSample.xaml.cs | 16 ++ .../HeaderedContentControlImageSample.xaml | 14 ++ .../HeaderedContentControlImageSample.xaml.cs | 16 ++ .../samples/HeaderedContentControlSample.xaml | 14 ++ .../HeaderedContentControlSample.xaml.cs | 16 ++ .../HeaderedContentControlTextSample.xaml | 15 ++ .../HeaderedContentControlTextSample.xaml.cs | 16 ++ .../samples/HeaderedControls.Samples.csproj | 20 +++ .../samples/HeaderedItemsControl.md | 41 ++++++ .../samples/HeaderedItemsControlSample.xaml | 44 ++++++ .../HeaderedItemsControlSample.xaml.cs | 18 +++ .../samples/HeaderedTreeView.md | 38 +++++ .../samples/HeaderedTreeViewSample.xaml | 44 ++++++ .../samples/HeaderedTreeViewSample.xaml.cs | 109 ++++++++++++++ .../src/AdditionalAssemblyInfo.cs | 13 ++ ...kit.WinUI.Controls.HeaderedControls.csproj | 13 ++ .../HeaderedControls/src/Dependencies.props | 31 ++++ .../HeaderedContentControl.cs | 138 ++++++++++++++++++ .../HeaderedContentControl.xaml | 50 +++++++ .../HeaderedItemsControl.cs | 121 +++++++++++++++ .../HeaderedItemsControl.xaml | 20 +++ .../src/HeaderedTreeView/HeaderedTreeView.cs | 126 ++++++++++++++++ .../HeaderedTreeView/HeaderedTreeView.xaml | 39 +++++ .../HeaderedControls/src/MultiTarget.props | 9 ++ .../HeaderedControls/src/Themes/Generic.xaml | 11 ++ .../tests/HeaderedControls.Tests.projitems | 11 ++ .../tests/HeaderedControls.Tests.shproj | 13 ++ 35 files changed, 1122 insertions(+) create mode 100644 components/HeaderedControls/OpenSolution.bat create mode 100644 components/HeaderedControls/samples/Assets/BisonBadlandsChillin.jpg create mode 100644 components/HeaderedControls/samples/Assets/HeaderedContentControl.png create mode 100644 components/HeaderedControls/samples/Assets/HeaderedItemsControl.png create mode 100644 components/HeaderedControls/samples/Assets/Sunny.png create mode 100644 components/HeaderedControls/samples/Dependencies.props create mode 100644 components/HeaderedControls/samples/HeaderedContentControl.md create mode 100644 components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml create mode 100644 components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml.cs create mode 100644 components/HeaderedControls/samples/HeaderedContentControlImageSample.xaml create mode 100644 components/HeaderedControls/samples/HeaderedContentControlImageSample.xaml.cs create mode 100644 components/HeaderedControls/samples/HeaderedContentControlSample.xaml create mode 100644 components/HeaderedControls/samples/HeaderedContentControlSample.xaml.cs create mode 100644 components/HeaderedControls/samples/HeaderedContentControlTextSample.xaml create mode 100644 components/HeaderedControls/samples/HeaderedContentControlTextSample.xaml.cs create mode 100644 components/HeaderedControls/samples/HeaderedControls.Samples.csproj create mode 100644 components/HeaderedControls/samples/HeaderedItemsControl.md create mode 100644 components/HeaderedControls/samples/HeaderedItemsControlSample.xaml create mode 100644 components/HeaderedControls/samples/HeaderedItemsControlSample.xaml.cs create mode 100644 components/HeaderedControls/samples/HeaderedTreeView.md create mode 100644 components/HeaderedControls/samples/HeaderedTreeViewSample.xaml create mode 100644 components/HeaderedControls/samples/HeaderedTreeViewSample.xaml.cs create mode 100644 components/HeaderedControls/src/AdditionalAssemblyInfo.cs create mode 100644 components/HeaderedControls/src/CommunityToolkit.WinUI.Controls.HeaderedControls.csproj create mode 100644 components/HeaderedControls/src/Dependencies.props create mode 100644 components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.cs create mode 100644 components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.xaml create mode 100644 components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.cs create mode 100644 components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml create mode 100644 components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.cs create mode 100644 components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml create mode 100644 components/HeaderedControls/src/MultiTarget.props create mode 100644 components/HeaderedControls/src/Themes/Generic.xaml create mode 100644 components/HeaderedControls/tests/HeaderedControls.Tests.projitems create mode 100644 components/HeaderedControls/tests/HeaderedControls.Tests.shproj diff --git a/components/HeaderedControls/OpenSolution.bat b/components/HeaderedControls/OpenSolution.bat new file mode 100644 index 00000000..814a56d4 --- /dev/null +++ b/components/HeaderedControls/OpenSolution.bat @@ -0,0 +1,3 @@ +@ECHO OFF + +powershell ..\..\tooling\ProjectHeads\GenerateSingleSampleHeads.ps1 -componentPath %CD% %* \ No newline at end of file diff --git a/components/HeaderedControls/samples/Assets/BisonBadlandsChillin.jpg b/components/HeaderedControls/samples/Assets/BisonBadlandsChillin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8e5b88733f318642868981a1711b49cc2299c1ae GIT binary patch literal 84324 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 literal 0 HcmV?d00001 diff --git a/components/HeaderedControls/samples/Assets/HeaderedContentControl.png b/components/HeaderedControls/samples/Assets/HeaderedContentControl.png new file mode 100644 index 0000000000000000000000000000000000000000..e60d51ac9e2c2395d7bdf80ba07087f523d5870b GIT binary patch literal 2802 zcmV;M1&0drDELIAGL9O(c600d`2O+f$vv5yP#@ z{aT|~<`#iKt^LPf)EaQC-b!>6=2B^=)l6k730O=FC&^}^G#IEdVb^N4_E>nByojI` za%OE6xHybVz!xVfi0It zspcvUNhwD-`Q8q`a&!|8%uI4PjJ3_tH8w}wjW4mu>)T?(!-p#VSBsGr3o;Yn69I22&jQa?rK_C-z$J?g!90D zgcFAYeD8J61EGTwFI@?+8r(2Ms6#dl3y62`z<;j}Fgq~I0BUgKdj)lpaR*mF;{>W2 zxYN6Q?KTXO{5t7|CWsNO)m#Y<8Wa|+Ne2AYU%Un1_{bqfzsM^aL+%S>jo7#|Hge;M z%3(RUkj(ZEZ{CEToSy@398kIuqRo>V(%bjB9N8oYM1)I=eel#PTR@BL6i8y`lq$(l zHP|{iDi@SN2#pkoYBO$9M-qcfLuPZn4{**Z8)UxG%HKv2 zFXl;Dh{v$OMIKM>qAu82LY0rG;;hb%aP*h3jpPbX=Q%M&wYZwa96w#>> z#@mRN<0L*R>3A{BHm=}xPVpVh?^#1a5K7sUlWl81#%L&cFwq-gT45wauT)}kk8vfl z6x=YxykK_yiYfDvX@WI?x-|1FJteeK-ccom;zBXDIn#Wzq!BILm!yGR;I=Qk!O~~_ zNQg8NWI!TXF{B7{co1*UFcBj*g>3>5Fpw9~k>^Oiyq7gFsVe&+*?5q`3*CZ48aGo- zy5~MYq9-)4r^PC8i%XZ7<{;U-M7gSD!DLiI-zs~)DKHZPW}6eXWO3A3rwkHhVFWYd z6i+?aM2pTG>+P!u?&L-^Digg)W|Y~)qI$f$3LJJ^Jcb$V+Q^wq1p_9!ibBC8t3?m| z+GD9>$lC&RPc%IzZ9tVi)DDzDNEyUz-z)}dZ#DXPhtP)B72p`1sGmWErYs6c;))BQ z1O;>fkd2|bI#28q;Fx#_DupQ8!({97J|qHW1d5{AzkJqFNlEFIc!O-Kg|=4Dp6J(s z)BI+1F@;4;8NnReQiVIY<)@g*W@}LlE*!x!pt6?KWRH-17_1EPw870vuJkTfaoCul z+sin$EC&ZAt}9zfisFM$f9eD9<;UL-@3?2)$VdZ6sH)p^^Sbid?QQtMne+7Q3%|ph zFU|5$qRj{IKZK{Ac!VB3_U=ah$!he^*^B>!r@ngz|8nt4LKUDXC@JEUX$BZ`>X!rM z0CVbd58>BN9K(bAdWm|?r3rmBCK~qV0~Nr#(Ocp`#V#96=5rB9^CA;1j0^iSOV7q4{m@0sOQzsLMwzK|3mwN@}zMJ z>uQMHk5_?oMsbm=37+4Kr3Y3qx`#YJmU_axNQ5>wiV4fVDU$vm5$@?P2fp&0f_WhPj^8=J6dq^f{5Jw#e+mg8~#W*Aa5kGfOQwB_-6U7jna zPRX3mgyi7Hpr%Z3na>rv0FaB2n9XpRKR3dJ91;>8Od2d%VJSFU)Kpw+*%$CACML5? zgR6v){g|va^~gBZ&{SB@;Oi}mRVkM7kyZzkB!M*1oDC}moLSf8Do|6J06&iiTB^~t zTRXa2fC)fT{j1k+dt^$)Q^9T()9NH{IZlf;Dd9-#fPhU>ttCE{`|2b-9?Qu#nbC`9 z&cW3iw{|6M@7H5n*KWeE|M*Yik5X*W+(w!AmEc@+UZq$L8F0*ey=bjXXK0xKlr!`s zg>YjV;Y-i`jLu#7_aq>{Uii@Smkfa621y7T2w({uj}dcf8BwTr(WW)xec~arS_*Gnb>h|>^6Bn%Ex=^?;@yR zWb*oJe6E^kJb@|l>W#Z_X#ad^C9(>vzkBmP*K*E8*#U8t66D^`nJunZ`nm2TAZHyt zut_17_we0J=YbX`!FF5uL~tTh!nknO3MD3qps9~L-+AdzOKZp}UmMq-(tqJsXH5%Q zC#8*{>>Ilc!r4CFBkw2d@8Rc7$|RXM2qp{dCGqc$PT8Pn+a07*qoM6N<$ Ef}Mg;EdT%j literal 0 HcmV?d00001 diff --git a/components/HeaderedControls/samples/Assets/HeaderedItemsControl.png b/components/HeaderedControls/samples/Assets/HeaderedItemsControl.png new file mode 100644 index 0000000000000000000000000000000000000000..e804b3b5bc812e1d3c66cea244b4bef3f8ad5070 GIT binary patch literal 2728 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 + + + + + + + + + + + + + + + + + + + + + diff --git a/components/HeaderedControls/samples/HeaderedContentControl.md b/components/HeaderedControls/samples/HeaderedContentControl.md new file mode 100644 index 00000000..6609c458 --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedContentControl.md @@ -0,0 +1,45 @@ +--- +title: HeaderedContentControl +author: skendrot +description: The HeaderedContentControl allows content to be displayed with a specified header. +keywords: HeaderedContentControl, Control, headered +dev_langs: + - csharp +category: Controls +subcategory: Layout +discussion-id: 0 +issue-id: 0 +icon: Assets/HeaderedContentControl.png +--- + +The `Header` property can be any object and you can use the `HeaderTemplate` to specify a custom look to the header. Content for the HeaderedContentControl will align to the top left. This is to maintain the same functionality as the ContentControl. + +> [!NOTE] +> Setting the `Background`, `BorderBrush` and `BorderThickness` properties will not have any effect on the HeaderedContentControl. This is to maintain the same functionality as the ContentControl. + +> [!Sample HeaderedContentControlSample] + +> [!Sample HeaderedContentControlTextSample] + +> [!Sample HeaderedContentControlImageSample] + +> [!Sample HeaderedContentControlComplexSample] + +## Syntax + +```xaml + + + + + +``` + +## Properties + +| Property | Type | Gets or sets the data used for the header of each control | +| -- | -- | -- | +| Header | object | Gets or sets the data used for the header of each control | +| HeaderTemplate | DataTemplate | Gets or sets the template used to display the content of the control's header | +| Orientation | Orientation | Gets or sets the Orientation to use for layout of the header. If set to Vertical the Header will be above the content. If set to Horizontal the Header will be to the left of the content. | diff --git a/components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml b/components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml new file mode 100644 index 00000000..5b2ce71d --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + diff --git a/components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml.cs b/components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml.cs new file mode 100644 index 00000000..288c6424 --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using CommunityToolkit.WinUI.Controls; + +namespace HeaderedContentControlExperiment.Samples; + +[ToolkitSample(id: nameof(HeaderedContentControlComplexSample), "HeaderedContentControl Complex Sample", description: $"A sample for showing how to create and use a {nameof(HeaderedContentControl)} control with complex content.")] +public sealed partial class HeaderedContentControlComplexSample : Page +{ + public HeaderedContentControlComplexSample() + { + this.InitializeComponent(); + } +} diff --git a/components/HeaderedControls/samples/HeaderedContentControlImageSample.xaml b/components/HeaderedControls/samples/HeaderedContentControlImageSample.xaml new file mode 100644 index 00000000..6754cbd5 --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedContentControlImageSample.xaml @@ -0,0 +1,14 @@ + + + + + + + diff --git a/components/HeaderedControls/samples/HeaderedContentControlImageSample.xaml.cs b/components/HeaderedControls/samples/HeaderedContentControlImageSample.xaml.cs new file mode 100644 index 00000000..049c59cb --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedContentControlImageSample.xaml.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using CommunityToolkit.WinUI.Controls; + +namespace HeaderedContentControlExperiment.Samples; + +[ToolkitSample(id: nameof(HeaderedContentControlImageSample), "HeaderedContentControl Image Sample", description: $"A sample for showing how to create and use a {nameof(HeaderedContentControl)} control with image content.")] +public sealed partial class HeaderedContentControlImageSample : Page +{ + public HeaderedContentControlImageSample() + { + this.InitializeComponent(); + } +} diff --git a/components/HeaderedControls/samples/HeaderedContentControlSample.xaml b/components/HeaderedControls/samples/HeaderedContentControlSample.xaml new file mode 100644 index 00000000..7c5dc54a --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedContentControlSample.xaml @@ -0,0 +1,14 @@ + + + + + + + diff --git a/components/HeaderedControls/samples/HeaderedContentControlSample.xaml.cs b/components/HeaderedControls/samples/HeaderedContentControlSample.xaml.cs new file mode 100644 index 00000000..e38abd03 --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedContentControlSample.xaml.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using CommunityToolkit.WinUI.Controls; + +namespace HeaderedContentControlExperiment.Samples; + +[ToolkitSample(id: nameof(HeaderedContentControlSample), "HeaderedContentControl", description: $"A sample for showing how to create and use a {nameof(HeaderedContentControl)} control.")] +public sealed partial class HeaderedContentControlSample : Page +{ + public HeaderedContentControlSample() + { + this.InitializeComponent(); + } +} diff --git a/components/HeaderedControls/samples/HeaderedContentControlTextSample.xaml b/components/HeaderedControls/samples/HeaderedContentControlTextSample.xaml new file mode 100644 index 00000000..6cb5d85e --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedContentControlTextSample.xaml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/components/HeaderedControls/samples/HeaderedContentControlTextSample.xaml.cs b/components/HeaderedControls/samples/HeaderedContentControlTextSample.xaml.cs new file mode 100644 index 00000000..b5218250 --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedContentControlTextSample.xaml.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using CommunityToolkit.WinUI.Controls; + +namespace HeaderedContentControlExperiment.Samples; + +[ToolkitSample(id: nameof(HeaderedContentControlTextSample), "HeaderedContentControl Text Sample", description: $"A sample for showing how to create and use a {nameof(HeaderedContentControl)} control with text content.")] +public sealed partial class HeaderedContentControlTextSample : Page +{ + public HeaderedContentControlTextSample() + { + this.InitializeComponent(); + } +} diff --git a/components/HeaderedControls/samples/HeaderedControls.Samples.csproj b/components/HeaderedControls/samples/HeaderedControls.Samples.csproj new file mode 100644 index 00000000..6705dfe5 --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedControls.Samples.csproj @@ -0,0 +1,20 @@ + + + HeaderedControls + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + diff --git a/components/HeaderedControls/samples/HeaderedItemsControl.md b/components/HeaderedControls/samples/HeaderedItemsControl.md new file mode 100644 index 00000000..edc35369 --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedItemsControl.md @@ -0,0 +1,41 @@ +--- +title: HeaderedItemsControl +author: skendrot +description: The HeaderedItemsControl allows items to be displayed with a specified header. +keywords: HeaderedItemsControl, Control, Layout +dev_langs: + - csharp +category: Controls +subcategory: Layout +discussion-id: 0 +issue-id: 0 +icon: Assets/HeaderedItemsControl.png +--- +The `Header` property can be any object and you can use the `HeaderTemplate` to specify a custom look to the header. Similiar objects can be set for the `Footer` and `FooterTemplate`. + +> [!NOTE] +> Setting the `Background`, `BorderBrush` and `BorderThickness` properties will not have any effect on the HeaderedItemsControl. This is to maintain the same functionality as the ItemsControl. + +> [!Sample HeaderedItemsControlSample] + +## Syntax + +```xaml + + + + + +``` + + +## Properties + +| Property | Type | Gets or sets the data used for the header of each control | +| -- | -- | -- | +| Header | object | Gets or sets the data used for the header of each control | +| HeaderTemplate | DataTemplate | Gets or sets the template used to display the content of the control's footer | +| Footer | object | Gets or sets the data used for the header of each control | +| FooterTemplate | DataTemplate | Gets or sets the template used to display the content of the control's footer | +| Orientation | Orientation | Gets or sets the Orientation to use for layout of the header. If set to Vertical the Header will be above the items. If set to Horizontal the Header will be to the left of the items. | diff --git a/components/HeaderedControls/samples/HeaderedItemsControlSample.xaml b/components/HeaderedControls/samples/HeaderedItemsControlSample.xaml new file mode 100644 index 00000000..5d32d394 --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedItemsControlSample.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/HeaderedControls/samples/HeaderedItemsControlSample.xaml.cs b/components/HeaderedControls/samples/HeaderedItemsControlSample.xaml.cs new file mode 100644 index 00000000..86e2cefa --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedItemsControlSample.xaml.cs @@ -0,0 +1,18 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using CommunityToolkit.WinUI.Controls; + +namespace HeaderedItemsControlExperiment.Samples; + +[ToolkitSample(id: nameof(HeaderedItemsControlSample), "HeaderedItemsControl", description: $"A sample for showing how to create and use a {nameof(HeaderedItemsControl)} control.")] +public sealed partial class HeaderedItemsControlSample : Page +{ + public HeaderedItemsControlSample() + { + this.InitializeComponent(); + Items = "The quick brown fox jumped over the lazy river".Split(' '); + } + public IEnumerable Items { get; } +} diff --git a/components/HeaderedControls/samples/HeaderedTreeView.md b/components/HeaderedControls/samples/HeaderedTreeView.md new file mode 100644 index 00000000..d508a87a --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedTreeView.md @@ -0,0 +1,38 @@ +--- +title: HeaderedTreeView +author: michaelhawker +description: The HeaderedTreeView allows a treeview to be displayed with a specified header. +keywords: HeaderedTreeView, Control, Layout, treeview +dev_langs: + - csharp +category: Controls +subcategory: Layout +discussion-id: 0 +issue-id: 0 +icon: Assets/HeaderedItemsControl.png +--- +The `Header` property can be any object and you can use the `HeaderTemplate` to specify a custom look to the header. Similiar objects can be set for the `Footer` and `FooterTemplate`. + + +> [!Sample HeaderedTreeViewSample] + +## Syntax + +```xaml + + + + + +``` + + +## Properties + +| Property | Type | Gets or sets the data used for the header of each control | +| -- | -- | -- | +| Header | object | Gets or sets the data used for the header of each control | +| HeaderTemplate | DataTemplate | Gets or sets the template used to display the content of the control's footer | +| Footer | object | Gets or sets the data used for the header of each control | +| FooterTemplate | DataTemplate | Gets or sets the template used to display the content of the control's footer | \ No newline at end of file diff --git a/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml b/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml new file mode 100644 index 00000000..1ab53e8a --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml.cs b/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml.cs new file mode 100644 index 00000000..fd4c5304 --- /dev/null +++ b/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml.cs @@ -0,0 +1,109 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using CommunityToolkit.WinUI.Controls; + +namespace HeaderedItemsControlExperiment.Samples; + +[ToolkitSample(id: nameof(HeaderedTreeViewSample), "HeaderedTreeView", description: $"A sample for showing how to create and use a {nameof(HeaderedTreeView)} control.")] +public sealed partial class HeaderedTreeViewSample : Page +{ + public HeaderedTreeViewSample() + { + this.InitializeComponent(); + Items = GetData(); + } + public ObservableCollection Items { get; } + +private ObservableCollection GetData() + { + var list = new ObservableCollection(); + ExplorerItem folder1 = new ExplorerItem() + { + Name = "Work Documents", + Children = + { + new ExplorerItem() + { + Name = "Functional Specifications", + Children = + { + new ExplorerItem() + { + Name = "TreeView spec", + } + } + }, + new ExplorerItem() + { + Name = "Feature Schedule", + }, + new ExplorerItem() + { + Name = "Overall Project Plan", + }, + new ExplorerItem() + { + Name = "Feature Resources Allocation", + } + } + }; + ExplorerItem folder2 = new ExplorerItem() + { + Name = "Personal Folder", + Children = + { + new ExplorerItem() + { + Name = "Home Remodel Folder", + Type = ExplorerItem.ExplorerItemType.Folder, + Children = + { + new ExplorerItem() + { + Name = "Contractor Contact Info", + }, + new ExplorerItem() + { + Name = "Paint Color Scheme", + }, + new ExplorerItem() + { + Name = "Flooring Woodgrain type", + }, + new ExplorerItem() + { + Name = "Kitchen Cabinet Style", + } + } + } + } + }; + + list.Add(folder1); + list.Add(folder2); + return list; + } + +public class ExplorerItem + { + public string Name { get; set; } + private ObservableCollection m_children; + public ObservableCollection Children + { + get + { + if (m_children == null) + { + m_children = new ObservableCollection(); + } + return m_children; + } + set + { + m_children = value; + } + } +} +} diff --git a/components/HeaderedControls/src/AdditionalAssemblyInfo.cs b/components/HeaderedControls/src/AdditionalAssemblyInfo.cs new file mode 100644 index 00000000..ea96b9e0 --- /dev/null +++ b/components/HeaderedControls/src/AdditionalAssemblyInfo.cs @@ -0,0 +1,13 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.CompilerServices; + +// These `InternalsVisibleTo` calls are intended to make it easier for +// for any internal code to be testable in all the different test projects +// used with the Labs infrastructure. +[assembly: InternalsVisibleTo("HeaderedControls.Tests.Uwp")] +[assembly: InternalsVisibleTo("HeaderedControls.Tests.WinAppSdk")] +[assembly: InternalsVisibleTo("CommunityToolkit.Tests.Uwp")] +[assembly: InternalsVisibleTo("CommunityToolkit.Tests.WinAppSdk")] diff --git a/components/HeaderedControls/src/CommunityToolkit.WinUI.Controls.HeaderedControls.csproj b/components/HeaderedControls/src/CommunityToolkit.WinUI.Controls.HeaderedControls.csproj new file mode 100644 index 00000000..04781f13 --- /dev/null +++ b/components/HeaderedControls/src/CommunityToolkit.WinUI.Controls.HeaderedControls.csproj @@ -0,0 +1,13 @@ + + + HeaderedControls + This package contains HeaderedControls. + 0.0.1 + + + CommunityToolkit.WinUI.Controls.HeaderedControlsRns + + + + + diff --git a/components/HeaderedControls/src/Dependencies.props b/components/HeaderedControls/src/Dependencies.props new file mode 100644 index 00000000..e622e1df --- /dev/null +++ b/components/HeaderedControls/src/Dependencies.props @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.cs b/components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.cs new file mode 100644 index 00000000..86d9b08c --- /dev/null +++ b/components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.cs @@ -0,0 +1,138 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace CommunityToolkit.WinUI.Controls; + +/// +/// Provides the base implementation for all controls that contain single content and have a header. +/// +public partial class HeaderedContentControl : ContentControl +{ + private const string PartHeaderPresenter = "HeaderPresenter"; + + /// + /// Initializes a new instance of the class. + /// + public HeaderedContentControl() + { + DefaultStyleKey = typeof(HeaderedContentControl); + } + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register( + nameof(Header), + typeof(object), + typeof(HeaderedContentControl), + new PropertyMetadata(null, OnHeaderChanged)); + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty HeaderTemplateProperty = DependencyProperty.Register( + nameof(HeaderTemplate), + typeof(DataTemplate), + typeof(HeaderedContentControl), + new PropertyMetadata(null)); + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty OrientationProperty = DependencyProperty.Register( + nameof(Orientation), + typeof(Orientation), + typeof(HeaderedContentControl), + new PropertyMetadata(Orientation.Vertical, OnOrientationChanged)); + + /// + /// Gets or sets the used for the header. + /// + /// + /// If set to the header will be above the content. + /// If set to the header will be to the left of the content. + /// + public Orientation Orientation + { + get { return (Orientation)GetValue(OrientationProperty); } + set { SetValue(OrientationProperty, value); } + } + + /// + /// Gets or sets the data used for the header of each control. + /// + public object Header + { + get { return GetValue(HeaderProperty); } + set { SetValue(HeaderProperty, value); } + } + + /// + /// Gets or sets the template used to display the content of the control's header. + /// + public DataTemplate HeaderTemplate + { + get { return (DataTemplate)GetValue(HeaderTemplateProperty); } + set { SetValue(HeaderTemplateProperty, value); } + } + + /// + protected override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + SetHeaderVisibility(); + SetOrientation(); + } + + /// + /// Called when the property changes. + /// + /// The old value of the property. + /// The new value of the property. + protected virtual void OnHeaderChanged(object oldValue, object newValue) + { + } + + private static void OnOrientationChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var control = (HeaderedContentControl)d; + control.SetOrientation(); + } + + private static void OnHeaderChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var control = (HeaderedContentControl)d; + control.SetHeaderVisibility(); + control.OnHeaderChanged(e.OldValue, e.NewValue); + } + + private void SetHeaderVisibility() + { + if (GetTemplateChild(PartHeaderPresenter) is FrameworkElement headerPresenter) + { + if (Header is string headerText) + { + headerPresenter.Visibility = string.IsNullOrEmpty(headerText) + ? Visibility.Collapsed + : Visibility.Visible; + } + else + { + headerPresenter.Visibility = Header != null + ? Visibility.Visible + : Visibility.Collapsed; + } + } + } + + private void SetOrientation() + { + var orientation = this.Orientation == Orientation.Vertical + ? nameof(Orientation.Vertical) + : nameof(Orientation.Horizontal); + + VisualStateManager.GoToState(this, orientation, true); + } +} diff --git a/components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.xaml b/components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.xaml new file mode 100644 index 00000000..0d1648ff --- /dev/null +++ b/components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.xaml @@ -0,0 +1,50 @@ + + + + + diff --git a/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.cs b/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.cs new file mode 100644 index 00000000..ae194529 --- /dev/null +++ b/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.cs @@ -0,0 +1,121 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace CommunityToolkit.WinUI.Controls; + +/// +/// Represents a control that contains multiple items and has a header. +/// +public partial class HeaderedItemsControl : ItemsControl +{ + /// + /// Initializes a new instance of the class. + /// + public HeaderedItemsControl() + { + DefaultStyleKey = typeof(HeaderedItemsControl); + } + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty FooterProperty = DependencyProperty.Register( + nameof(Footer), + typeof(object), + typeof(HeaderedItemsControl), + new PropertyMetadata(null, OnFooterChanged)); + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty FooterTemplateProperty = DependencyProperty.Register( + nameof(FooterTemplate), + typeof(DataTemplate), + typeof(HeaderedItemsControl), + new PropertyMetadata(null)); + + /// + /// Gets or sets the data used for the Footer of each control. + /// + public object Footer + { + get { return GetValue(FooterProperty); } + set { SetValue(FooterProperty, value); } + } + + /// + /// Gets or sets the template used to display the content of the control's Footer. + /// + public DataTemplate FooterTemplate + { + get { return (DataTemplate)GetValue(FooterTemplateProperty); } + set { SetValue(FooterTemplateProperty, value); } + } + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register( + nameof(Header), + typeof(object), + typeof(HeaderedItemsControl), + new PropertyMetadata(null, OnHeaderChanged)); + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty HeaderTemplateProperty = DependencyProperty.Register( + nameof(HeaderTemplate), + typeof(DataTemplate), + typeof(HeaderedItemsControl), + new PropertyMetadata(null)); + + /// + /// Gets or sets the data used for the header of each control. + /// + public object Header + { + get { return GetValue(HeaderProperty); } + set { SetValue(HeaderProperty, value); } + } + + /// + /// Gets or sets the template used to display the content of the control's header. + /// + public DataTemplate HeaderTemplate + { + get { return (DataTemplate)GetValue(HeaderTemplateProperty); } + set { SetValue(HeaderTemplateProperty, value); } + } + + /// + /// Called when the property changes. + /// + /// The old value of the property. + /// The new value of the property. + protected virtual void OnFooterChanged(object oldValue, object newValue) + { + } + + private static void OnFooterChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var control = (HeaderedItemsControl)d; + control.OnFooterChanged(e.OldValue, e.NewValue); + } + + /// + /// Called when the property changes. + /// + /// The old value of the property. + /// The new value of the property. + protected virtual void OnHeaderChanged(object oldValue, object newValue) + { + } + + private static void OnHeaderChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var control = (HeaderedItemsControl)d; + control.OnHeaderChanged(e.OldValue, e.NewValue); + } +} diff --git a/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml b/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml new file mode 100644 index 00000000..a7a86235 --- /dev/null +++ b/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml @@ -0,0 +1,20 @@ + + + + + diff --git a/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.cs b/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.cs new file mode 100644 index 00000000..b6f9e8a1 --- /dev/null +++ b/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.cs @@ -0,0 +1,126 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using TreeView = Microsoft.UI.Xaml.Controls.TreeView; + +namespace CommunityToolkit.WinUI.Controls; + +/// +/// Represents a and has a header. +/// +public partial class HeaderedTreeView : TreeView +{ + /// + /// Initializes a new instance of the class. + /// + public HeaderedTreeView() + { + DefaultStyleKey = typeof(HeaderedTreeView); + + // Workaround for https://github.com/microsoft/microsoft-ui-xaml/issues/3502 + this.DefaultStyleResourceUri = new Uri("ms-appx:///CommunityToolkit.WinUI.Controls.HeaderedControls/Themes/Generic.xaml"); + } + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty FooterProperty = DependencyProperty.Register( + nameof(Footer), + typeof(object), + typeof(HeaderedTreeView), + new PropertyMetadata(null, OnFooterChanged)); + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty FooterTemplateProperty = DependencyProperty.Register( + nameof(FooterTemplate), + typeof(DataTemplate), + typeof(HeaderedTreeView), + new PropertyMetadata(null)); + + /// + /// Gets or sets the data used for the Footer of each control. + /// + public object Footer + { + get { return GetValue(FooterProperty); } + set { SetValue(FooterProperty, value); } + } + + /// + /// Gets or sets the template used to display the content of the control's Footer. + /// + public DataTemplate FooterTemplate + { + get { return (DataTemplate)GetValue(FooterTemplateProperty); } + set { SetValue(FooterTemplateProperty, value); } + } + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register( + nameof(Header), + typeof(object), + typeof(HeaderedTreeView), + new PropertyMetadata(null, OnHeaderChanged)); + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty HeaderTemplateProperty = DependencyProperty.Register( + nameof(HeaderTemplate), + typeof(DataTemplate), + typeof(HeaderedTreeView), + new PropertyMetadata(null)); + + /// + /// Gets or sets the data used for the header of each control. + /// + public object Header + { + get { return GetValue(HeaderProperty); } + set { SetValue(HeaderProperty, value); } + } + + /// + /// Gets or sets the template used to display the content of the control's header. + /// + public DataTemplate HeaderTemplate + { + get { return (DataTemplate)GetValue(HeaderTemplateProperty); } + set { SetValue(HeaderTemplateProperty, value); } + } + + /// + /// Called when the property changes. + /// + /// The old value of the property. + /// The new value of the property. + protected virtual void OnFooterChanged(object oldValue, object newValue) + { + } + + private static void OnFooterChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var control = (HeaderedTreeView)d; + control.OnFooterChanged(e.OldValue, e.NewValue); + } + + /// + /// Called when the property changes. + /// + /// The old value of the property. + /// The new value of the property. + protected virtual void OnHeaderChanged(object oldValue, object newValue) + { + } + + private static void OnHeaderChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var control = (HeaderedTreeView)d; + control.OnHeaderChanged(e.OldValue, e.NewValue); + } +} \ No newline at end of file diff --git a/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml b/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml new file mode 100644 index 00000000..93878517 --- /dev/null +++ b/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml @@ -0,0 +1,39 @@ + + + + \ No newline at end of file diff --git a/components/HeaderedControls/src/MultiTarget.props b/components/HeaderedControls/src/MultiTarget.props new file mode 100644 index 00000000..b11c1942 --- /dev/null +++ b/components/HeaderedControls/src/MultiTarget.props @@ -0,0 +1,9 @@ + + + + uwp;wasdk;wpf;wasm;linuxgtk;macos;ios;android; + + \ No newline at end of file diff --git a/components/HeaderedControls/src/Themes/Generic.xaml b/components/HeaderedControls/src/Themes/Generic.xaml new file mode 100644 index 00000000..61282c0f --- /dev/null +++ b/components/HeaderedControls/src/Themes/Generic.xaml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/components/HeaderedControls/tests/HeaderedControls.Tests.projitems b/components/HeaderedControls/tests/HeaderedControls.Tests.projitems new file mode 100644 index 00000000..313b125e --- /dev/null +++ b/components/HeaderedControls/tests/HeaderedControls.Tests.projitems @@ -0,0 +1,11 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + true + 26383DFF-4962-4C54-B444-B170B62D7252 + + + HeaderedControlsExperiment.Tests + + \ No newline at end of file diff --git a/components/HeaderedControls/tests/HeaderedControls.Tests.shproj b/components/HeaderedControls/tests/HeaderedControls.Tests.shproj new file mode 100644 index 00000000..ddac55fd --- /dev/null +++ b/components/HeaderedControls/tests/HeaderedControls.Tests.shproj @@ -0,0 +1,13 @@ + + + + 26383DFF-4962-4C54-B444-B170B62D7252 + 14.0 + + + + + + + + From d880a8802544a51324bf20f416c6f5fe652fc0e0 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Thu, 6 Jul 2023 14:04:24 +0200 Subject: [PATCH 02/13] Remove other files --- .../HeaderedContentControl/OpenSolution.bat | 3 - .../samples/Assets/BisonBadlandsChillin.jpg | Bin 84324 -> 0 bytes .../samples/Assets/HeaderedContentControl.png | Bin 2802 -> 0 bytes .../samples/Assets/Sunny.png | Bin 5352 -> 0 bytes .../samples/Dependencies.props | 31 ---- .../HeaderedContentControl.Samples.csproj | 20 --- .../samples/HeaderedContentControl.md | 75 ---------- .../HeaderedContentControlComplexSample.xaml | 27 ---- ...eaderedContentControlComplexSample.xaml.cs | 16 -- .../HeaderedContentControlImageSample.xaml | 14 -- .../HeaderedContentControlImageSample.xaml.cs | 16 -- .../samples/HeaderedContentControlSample.xaml | 14 -- .../HeaderedContentControlSample.xaml.cs | 16 -- .../HeaderedContentControlTextSample.xaml | 15 -- .../HeaderedContentControlTextSample.xaml.cs | 16 -- .../src/AdditionalAssemblyInfo.cs | 13 -- ...nUI.Controls.HeaderedContentControl.csproj | 17 --- .../src/Dependencies.props | 31 ---- .../src/HeaderedContentControl.cs | 138 ------------------ .../src/HeaderedContentControl.xaml | 55 ------- .../src/MultiTarget.props | 9 -- .../src/Themes/Generic.xaml | 9 -- .../HeaderedContentControl.Tests.projitems | 11 -- .../tests/HeaderedContentControl.Tests.shproj | 13 -- .../HeaderedItemsControl/OpenSolution.bat | 3 - .../samples/Assets/HeaderedItemsControl.png | Bin 2728 -> 0 bytes .../samples/Dependencies.props | 31 ---- .../HeaderedItemsControl.Samples.csproj | 8 - .../samples/HeaderedItemsControl.md | 71 --------- .../samples/HeaderedItemsControlSample.xaml | 36 ----- .../HeaderedItemsControlSample.xaml.cs | 18 --- .../src/AdditionalAssemblyInfo.cs | 13 -- ...WinUI.Controls.HeaderedItemsControl.csproj | 17 --- .../src/Dependencies.props | 31 ---- .../src/HeaderedItemsControl.cs | 93 ------------ .../src/HeaderedItemsControl.xaml | 26 ---- .../src/MultiTarget.props | 9 -- .../src/Themes/Generic.xaml | 9 -- .../HeaderedItemsControl.Tests.projitems | 11 -- .../tests/HeaderedItemsControl.Tests.shproj | 13 -- 40 files changed, 948 deletions(-) delete mode 100644 components/HeaderedContentControl/OpenSolution.bat delete mode 100644 components/HeaderedContentControl/samples/Assets/BisonBadlandsChillin.jpg delete mode 100644 components/HeaderedContentControl/samples/Assets/HeaderedContentControl.png delete mode 100644 components/HeaderedContentControl/samples/Assets/Sunny.png delete mode 100644 components/HeaderedContentControl/samples/Dependencies.props delete mode 100644 components/HeaderedContentControl/samples/HeaderedContentControl.Samples.csproj delete mode 100644 components/HeaderedContentControl/samples/HeaderedContentControl.md delete mode 100644 components/HeaderedContentControl/samples/HeaderedContentControlComplexSample.xaml delete mode 100644 components/HeaderedContentControl/samples/HeaderedContentControlComplexSample.xaml.cs delete mode 100644 components/HeaderedContentControl/samples/HeaderedContentControlImageSample.xaml delete mode 100644 components/HeaderedContentControl/samples/HeaderedContentControlImageSample.xaml.cs delete mode 100644 components/HeaderedContentControl/samples/HeaderedContentControlSample.xaml delete mode 100644 components/HeaderedContentControl/samples/HeaderedContentControlSample.xaml.cs delete mode 100644 components/HeaderedContentControl/samples/HeaderedContentControlTextSample.xaml delete mode 100644 components/HeaderedContentControl/samples/HeaderedContentControlTextSample.xaml.cs delete mode 100644 components/HeaderedContentControl/src/AdditionalAssemblyInfo.cs delete mode 100644 components/HeaderedContentControl/src/CommunityToolkit.WinUI.Controls.HeaderedContentControl.csproj delete mode 100644 components/HeaderedContentControl/src/Dependencies.props delete mode 100644 components/HeaderedContentControl/src/HeaderedContentControl.cs delete mode 100644 components/HeaderedContentControl/src/HeaderedContentControl.xaml delete mode 100644 components/HeaderedContentControl/src/MultiTarget.props delete mode 100644 components/HeaderedContentControl/src/Themes/Generic.xaml delete mode 100644 components/HeaderedContentControl/tests/HeaderedContentControl.Tests.projitems delete mode 100644 components/HeaderedContentControl/tests/HeaderedContentControl.Tests.shproj delete mode 100644 components/HeaderedItemsControl/OpenSolution.bat delete mode 100644 components/HeaderedItemsControl/samples/Assets/HeaderedItemsControl.png delete mode 100644 components/HeaderedItemsControl/samples/Dependencies.props delete mode 100644 components/HeaderedItemsControl/samples/HeaderedItemsControl.Samples.csproj delete mode 100644 components/HeaderedItemsControl/samples/HeaderedItemsControl.md delete mode 100644 components/HeaderedItemsControl/samples/HeaderedItemsControlSample.xaml delete mode 100644 components/HeaderedItemsControl/samples/HeaderedItemsControlSample.xaml.cs delete mode 100644 components/HeaderedItemsControl/src/AdditionalAssemblyInfo.cs delete mode 100644 components/HeaderedItemsControl/src/CommunityToolkit.WinUI.Controls.HeaderedItemsControl.csproj delete mode 100644 components/HeaderedItemsControl/src/Dependencies.props delete mode 100644 components/HeaderedItemsControl/src/HeaderedItemsControl.cs delete mode 100644 components/HeaderedItemsControl/src/HeaderedItemsControl.xaml delete mode 100644 components/HeaderedItemsControl/src/MultiTarget.props delete mode 100644 components/HeaderedItemsControl/src/Themes/Generic.xaml delete mode 100644 components/HeaderedItemsControl/tests/HeaderedItemsControl.Tests.projitems delete mode 100644 components/HeaderedItemsControl/tests/HeaderedItemsControl.Tests.shproj diff --git a/components/HeaderedContentControl/OpenSolution.bat b/components/HeaderedContentControl/OpenSolution.bat deleted file mode 100644 index 814a56d4..00000000 --- a/components/HeaderedContentControl/OpenSolution.bat +++ /dev/null @@ -1,3 +0,0 @@ -@ECHO OFF - -powershell ..\..\tooling\ProjectHeads\GenerateSingleSampleHeads.ps1 -componentPath %CD% %* \ No newline at end of file diff --git a/components/HeaderedContentControl/samples/Assets/BisonBadlandsChillin.jpg b/components/HeaderedContentControl/samples/Assets/BisonBadlandsChillin.jpg deleted file mode 100644 index 8e5b88733f318642868981a1711b49cc2299c1ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84324 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 diff --git a/components/HeaderedContentControl/samples/Assets/HeaderedContentControl.png b/components/HeaderedContentControl/samples/Assets/HeaderedContentControl.png deleted file mode 100644 index e60d51ac9e2c2395d7bdf80ba07087f523d5870b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2802 zcmV;M1&0drDELIAGL9O(c600d`2O+f$vv5yP#@ z{aT|~<`#iKt^LPf)EaQC-b!>6=2B^=)l6k730O=FC&^}^G#IEdVb^N4_E>nByojI` za%OE6xHybVz!xVfi0It zspcvUNhwD-`Q8q`a&!|8%uI4PjJ3_tH8w}wjW4mu>)T?(!-p#VSBsGr3o;Yn69I22&jQa?rK_C-z$J?g!90D zgcFAYeD8J61EGTwFI@?+8r(2Ms6#dl3y62`z<;j}Fgq~I0BUgKdj)lpaR*mF;{>W2 zxYN6Q?KTXO{5t7|CWsNO)m#Y<8Wa|+Ne2AYU%Un1_{bqfzsM^aL+%S>jo7#|Hge;M z%3(RUkj(ZEZ{CEToSy@398kIuqRo>V(%bjB9N8oYM1)I=eel#PTR@BL6i8y`lq$(l zHP|{iDi@SN2#pkoYBO$9M-qcfLuPZn4{**Z8)UxG%HKv2 zFXl;Dh{v$OMIKM>qAu82LY0rG;;hb%aP*h3jpPbX=Q%M&wYZwa96w#>> z#@mRN<0L*R>3A{BHm=}xPVpVh?^#1a5K7sUlWl81#%L&cFwq-gT45wauT)}kk8vfl z6x=YxykK_yiYfDvX@WI?x-|1FJteeK-ccom;zBXDIn#Wzq!BILm!yGR;I=Qk!O~~_ zNQg8NWI!TXF{B7{co1*UFcBj*g>3>5Fpw9~k>^Oiyq7gFsVe&+*?5q`3*CZ48aGo- zy5~MYq9-)4r^PC8i%XZ7<{;U-M7gSD!DLiI-zs~)DKHZPW}6eXWO3A3rwkHhVFWYd z6i+?aM2pTG>+P!u?&L-^Digg)W|Y~)qI$f$3LJJ^Jcb$V+Q^wq1p_9!ibBC8t3?m| z+GD9>$lC&RPc%IzZ9tVi)DDzDNEyUz-z)}dZ#DXPhtP)B72p`1sGmWErYs6c;))BQ z1O;>fkd2|bI#28q;Fx#_DupQ8!({97J|qHW1d5{AzkJqFNlEFIc!O-Kg|=4Dp6J(s z)BI+1F@;4;8NnReQiVIY<)@g*W@}LlE*!x!pt6?KWRH-17_1EPw870vuJkTfaoCul z+sin$EC&ZAt}9zfisFM$f9eD9<;UL-@3?2)$VdZ6sH)p^^Sbid?QQtMne+7Q3%|ph zFU|5$qRj{IKZK{Ac!VB3_U=ah$!he^*^B>!r@ngz|8nt4LKUDXC@JEUX$BZ`>X!rM z0CVbd58>BN9K(bAdWm|?r3rmBCK~qV0~Nr#(Ocp`#V#96=5rB9^CA;1j0^iSOV7q4{m@0sOQzsLMwzK|3mwN@}zMJ z>uQMHk5_?oMsbm=37+4Kr3Y3qx`#YJmU_axNQ5>wiV4fVDU$vm5$@?P2fp&0f_WhPj^8=J6dq^f{5Jw#e+mg8~#W*Aa5kGfOQwB_-6U7jna zPRX3mgyi7Hpr%Z3na>rv0FaB2n9XpRKR3dJ91;>8Od2d%VJSFU)Kpw+*%$CACML5? zgR6v){g|va^~gBZ&{SB@;Oi}mRVkM7kyZzkB!M*1oDC}moLSf8Do|6J06&iiTB^~t zTRXa2fC)fT{j1k+dt^$)Q^9T()9NH{IZlf;Dd9-#fPhU>ttCE{`|2b-9?Qu#nbC`9 z&cW3iw{|6M@7H5n*KWeE|M*Yik5X*W+(w!AmEc@+UZq$L8F0*ey=bjXXK0xKlr!`s zg>YjV;Y-i`jLu#7_aq>{Uii@Smkfa621y7T2w({uj}dcf8BwTr(WW)xec~arS_*Gnb>h|>^6Bn%Ex=^?;@yR zWb*oJe6E^kJb@|l>W#Z_X#ad^C9(>vzkBmP*K*E8*#U8t66D^`nJunZ`nm2TAZHyt zut_17_we0J=YbX`!FF5uL~tTh!nknO3MD3qps9~L-+AdzOKZp}UmMq-(tqJsXH5%Q zC#8*{>>Ilc!r4CFBkw2d@8Rc7$|RXM2qp{dCGqc$PT8Pn+a07*qoM6N<$ Ef}Mg;EdT%j diff --git a/components/HeaderedContentControl/samples/Assets/Sunny.png b/components/HeaderedContentControl/samples/Assets/Sunny.png deleted file mode 100644 index 59cbe9fb05e5a4fcb7d90eb7f899bc824ea6438f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5352 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 - - - - - - - - - - - - - - - - - - - - - diff --git a/components/HeaderedContentControl/samples/HeaderedContentControl.Samples.csproj b/components/HeaderedContentControl/samples/HeaderedContentControl.Samples.csproj deleted file mode 100644 index 26b98c67..00000000 --- a/components/HeaderedContentControl/samples/HeaderedContentControl.Samples.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - HeaderedContentControl - - - - - - - - - - - PreserveNewest - - - PreserveNewest - - - diff --git a/components/HeaderedContentControl/samples/HeaderedContentControl.md b/components/HeaderedContentControl/samples/HeaderedContentControl.md deleted file mode 100644 index cbc7ffe7..00000000 --- a/components/HeaderedContentControl/samples/HeaderedContentControl.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: HeaderedContentControl -author: skendrot -description: The HeaderedContentControl allows content to be displayed with a specified header. -keywords: HeaderedContentControl, Control, headered -dev_langs: - - csharp -category: Controls -subcategory: Layout -discussion-id: 0 -issue-id: 0 -icon: Assets/HeaderedContentControl.png ---- - -The `Header` property can be any object and you can use the `HeaderTemplate` to specify a custom look to the header. Content for the HeaderedContentControl will align to the top left. This is to maintain the same functionality as the ContentControl. - -> [!NOTE] -> Setting the `Background`, `BorderBrush` and `BorderThickness` properties will not have any effect on the HeaderedContentControl. This is to maintain the same functionality as the ContentControl. - -> [!Sample HeaderedContentControlSample] - -> [!Sample HeaderedContentControlTextSample] - -> [!Sample HeaderedContentControlImageSample] - -> [!Sample HeaderedContentControlComplexSample] - -## Syntax - -```xaml - - - - - -``` - -## Properties - -| Property | Type | Gets or sets the data used for the header of each control | -| -- | -- | -- | -| Header | object | Gets or sets the data used for the header of each control | -| HeaderTemplate | DataTemplate | Gets or sets the template used to display the content of the control's header | -| Orientation | Orientation | Gets or sets the Orientation to use for layout of the header. If set to Vertical the Header will be above the content. If set to Horizontal the Header will be to the left of the content. | - -### Examples - -- The `Header` property can be set to a string, or any xaml elements. If binding the `Header` to an object that is not a string, use the `HeaderTemplate` to control how the content is rendered. - - *Sample Code* - - ```xaml - - - - - - - - - - ``` - -- Used to control the look of the header. The default value for the `HeaderTemplate` will display the string representation of the `Header`. Set this property if you need to bind the `Header` to an object. - - ```xaml - - - - - - - - ``` diff --git a/components/HeaderedContentControl/samples/HeaderedContentControlComplexSample.xaml b/components/HeaderedContentControl/samples/HeaderedContentControlComplexSample.xaml deleted file mode 100644 index 5b2ce71d..00000000 --- a/components/HeaderedContentControl/samples/HeaderedContentControlComplexSample.xaml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/components/HeaderedContentControl/samples/HeaderedContentControlComplexSample.xaml.cs b/components/HeaderedContentControl/samples/HeaderedContentControlComplexSample.xaml.cs deleted file mode 100644 index 288c6424..00000000 --- a/components/HeaderedContentControl/samples/HeaderedContentControlComplexSample.xaml.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using CommunityToolkit.WinUI.Controls; - -namespace HeaderedContentControlExperiment.Samples; - -[ToolkitSample(id: nameof(HeaderedContentControlComplexSample), "HeaderedContentControl Complex Sample", description: $"A sample for showing how to create and use a {nameof(HeaderedContentControl)} control with complex content.")] -public sealed partial class HeaderedContentControlComplexSample : Page -{ - public HeaderedContentControlComplexSample() - { - this.InitializeComponent(); - } -} diff --git a/components/HeaderedContentControl/samples/HeaderedContentControlImageSample.xaml b/components/HeaderedContentControl/samples/HeaderedContentControlImageSample.xaml deleted file mode 100644 index 9874c605..00000000 --- a/components/HeaderedContentControl/samples/HeaderedContentControlImageSample.xaml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - diff --git a/components/HeaderedContentControl/samples/HeaderedContentControlImageSample.xaml.cs b/components/HeaderedContentControl/samples/HeaderedContentControlImageSample.xaml.cs deleted file mode 100644 index 049c59cb..00000000 --- a/components/HeaderedContentControl/samples/HeaderedContentControlImageSample.xaml.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using CommunityToolkit.WinUI.Controls; - -namespace HeaderedContentControlExperiment.Samples; - -[ToolkitSample(id: nameof(HeaderedContentControlImageSample), "HeaderedContentControl Image Sample", description: $"A sample for showing how to create and use a {nameof(HeaderedContentControl)} control with image content.")] -public sealed partial class HeaderedContentControlImageSample : Page -{ - public HeaderedContentControlImageSample() - { - this.InitializeComponent(); - } -} diff --git a/components/HeaderedContentControl/samples/HeaderedContentControlSample.xaml b/components/HeaderedContentControl/samples/HeaderedContentControlSample.xaml deleted file mode 100644 index 7c5dc54a..00000000 --- a/components/HeaderedContentControl/samples/HeaderedContentControlSample.xaml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - diff --git a/components/HeaderedContentControl/samples/HeaderedContentControlSample.xaml.cs b/components/HeaderedContentControl/samples/HeaderedContentControlSample.xaml.cs deleted file mode 100644 index e38abd03..00000000 --- a/components/HeaderedContentControl/samples/HeaderedContentControlSample.xaml.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using CommunityToolkit.WinUI.Controls; - -namespace HeaderedContentControlExperiment.Samples; - -[ToolkitSample(id: nameof(HeaderedContentControlSample), "HeaderedContentControl", description: $"A sample for showing how to create and use a {nameof(HeaderedContentControl)} control.")] -public sealed partial class HeaderedContentControlSample : Page -{ - public HeaderedContentControlSample() - { - this.InitializeComponent(); - } -} diff --git a/components/HeaderedContentControl/samples/HeaderedContentControlTextSample.xaml b/components/HeaderedContentControl/samples/HeaderedContentControlTextSample.xaml deleted file mode 100644 index 6cb5d85e..00000000 --- a/components/HeaderedContentControl/samples/HeaderedContentControlTextSample.xaml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - diff --git a/components/HeaderedContentControl/samples/HeaderedContentControlTextSample.xaml.cs b/components/HeaderedContentControl/samples/HeaderedContentControlTextSample.xaml.cs deleted file mode 100644 index b5218250..00000000 --- a/components/HeaderedContentControl/samples/HeaderedContentControlTextSample.xaml.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using CommunityToolkit.WinUI.Controls; - -namespace HeaderedContentControlExperiment.Samples; - -[ToolkitSample(id: nameof(HeaderedContentControlTextSample), "HeaderedContentControl Text Sample", description: $"A sample for showing how to create and use a {nameof(HeaderedContentControl)} control with text content.")] -public sealed partial class HeaderedContentControlTextSample : Page -{ - public HeaderedContentControlTextSample() - { - this.InitializeComponent(); - } -} diff --git a/components/HeaderedContentControl/src/AdditionalAssemblyInfo.cs b/components/HeaderedContentControl/src/AdditionalAssemblyInfo.cs deleted file mode 100644 index ba8804d3..00000000 --- a/components/HeaderedContentControl/src/AdditionalAssemblyInfo.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Runtime.CompilerServices; - -// These `InternalsVisibleTo` calls are intended to make it easier for -// for any internal code to be testable in all the different test projects -// used with the Labs infrastructure. -[assembly: InternalsVisibleTo("HeaderedContentControl.Tests.Uwp")] -[assembly: InternalsVisibleTo("HeaderedContentControl.Tests.WinAppSdk")] -[assembly: InternalsVisibleTo("CommunityToolkit.Tests.Uwp")] -[assembly: InternalsVisibleTo("CommunityToolkit.Tests.WinAppSdk")] diff --git a/components/HeaderedContentControl/src/CommunityToolkit.WinUI.Controls.HeaderedContentControl.csproj b/components/HeaderedContentControl/src/CommunityToolkit.WinUI.Controls.HeaderedContentControl.csproj deleted file mode 100644 index 15fba2fb..00000000 --- a/components/HeaderedContentControl/src/CommunityToolkit.WinUI.Controls.HeaderedContentControl.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - HeaderedContentControl - This package contains HeaderedContentControl. - 8.0.0-beta.1 - - - CommunityToolkit.WinUI.Controls.HeaderedContentControlRns - - - - - - - $(PackageIdPrefix).$(PackageIdVariant).Controls.$(ToolkitComponentName) - - diff --git a/components/HeaderedContentControl/src/Dependencies.props b/components/HeaderedContentControl/src/Dependencies.props deleted file mode 100644 index e622e1df..00000000 --- a/components/HeaderedContentControl/src/Dependencies.props +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/components/HeaderedContentControl/src/HeaderedContentControl.cs b/components/HeaderedContentControl/src/HeaderedContentControl.cs deleted file mode 100644 index e1affb78..00000000 --- a/components/HeaderedContentControl/src/HeaderedContentControl.cs +++ /dev/null @@ -1,138 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -namespace CommunityToolkit.WinUI.Controls; - -/// -/// Provides the base implementation for all controls that contain single content and have a header. -/// -public partial class HeaderedContentControl : ContentControl -{ - private const string PartHeaderPresenter = "HeaderPresenter"; - - /// - /// Initializes a new instance of the class. - /// - public HeaderedContentControl() - { - DefaultStyleKey = typeof(HeaderedContentControl); - } - - /// - /// Identifies the dependency property. - /// - public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register( - "Header", - typeof(object), - typeof(HeaderedContentControl), - new PropertyMetadata(null, OnHeaderChanged)); - - /// - /// Identifies the dependency property. - /// - public static readonly DependencyProperty HeaderTemplateProperty = DependencyProperty.Register( - "HeaderTemplate", - typeof(DataTemplate), - typeof(HeaderedContentControl), - new PropertyMetadata(null)); - - /// - /// Identifies the dependency property. - /// - public static readonly DependencyProperty OrientationProperty = DependencyProperty.Register( - nameof(Orientation), - typeof(Orientation), - typeof(HeaderedContentControl), - new PropertyMetadata(Orientation.Vertical, OnOrientationChanged)); - - /// - /// Gets or sets the used for the header. - /// - /// - /// If set to the header will be above the content. - /// If set to the header will be to the left of the content. - /// - public Orientation Orientation - { - get { return (Orientation)GetValue(OrientationProperty); } - set { SetValue(OrientationProperty, value); } - } - - /// - /// Gets or sets the data used for the header of each control. - /// - public object Header - { - get { return GetValue(HeaderProperty); } - set { SetValue(HeaderProperty, value); } - } - - /// - /// Gets or sets the template used to display the content of the control's header. - /// - public DataTemplate HeaderTemplate - { - get { return (DataTemplate)GetValue(HeaderTemplateProperty); } - set { SetValue(HeaderTemplateProperty, value); } - } - - /// - protected override void OnApplyTemplate() - { - base.OnApplyTemplate(); - - SetHeaderVisibility(); - SetOrientation(); - } - - /// - /// Called when the property changes. - /// - /// The old value of the property. - /// The new value of the property. - protected virtual void OnHeaderChanged(object oldValue, object newValue) - { - } - - private static void OnOrientationChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - var control = (HeaderedContentControl)d; - control.SetOrientation(); - } - - private static void OnHeaderChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - var control = (HeaderedContentControl)d; - control.SetHeaderVisibility(); - control.OnHeaderChanged(e.OldValue, e.NewValue); - } - - private void SetHeaderVisibility() - { - if (GetTemplateChild(PartHeaderPresenter) is FrameworkElement headerPresenter) - { - if (Header is string headerText) - { - headerPresenter.Visibility = string.IsNullOrEmpty(headerText) - ? Visibility.Collapsed - : Visibility.Visible; - } - else - { - headerPresenter.Visibility = Header != null - ? Visibility.Visible - : Visibility.Collapsed; - } - } - } - - private void SetOrientation() - { - var orientation = this.Orientation == Orientation.Vertical - ? nameof(Orientation.Vertical) - : nameof(Orientation.Horizontal); - - VisualStateManager.GoToState(this, orientation, true); - } -} diff --git a/components/HeaderedContentControl/src/HeaderedContentControl.xaml b/components/HeaderedContentControl/src/HeaderedContentControl.xaml deleted file mode 100644 index 6f874519..00000000 --- a/components/HeaderedContentControl/src/HeaderedContentControl.xaml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - diff --git a/components/HeaderedContentControl/src/MultiTarget.props b/components/HeaderedContentControl/src/MultiTarget.props deleted file mode 100644 index b11c1942..00000000 --- a/components/HeaderedContentControl/src/MultiTarget.props +++ /dev/null @@ -1,9 +0,0 @@ - - - - uwp;wasdk;wpf;wasm;linuxgtk;macos;ios;android; - - \ No newline at end of file diff --git a/components/HeaderedContentControl/src/Themes/Generic.xaml b/components/HeaderedContentControl/src/Themes/Generic.xaml deleted file mode 100644 index 99aa4b24..00000000 --- a/components/HeaderedContentControl/src/Themes/Generic.xaml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/components/HeaderedContentControl/tests/HeaderedContentControl.Tests.projitems b/components/HeaderedContentControl/tests/HeaderedContentControl.Tests.projitems deleted file mode 100644 index aa263439..00000000 --- a/components/HeaderedContentControl/tests/HeaderedContentControl.Tests.projitems +++ /dev/null @@ -1,11 +0,0 @@ - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - true - 863388CB-7C3F-4CD3-8ACE-79F0BB855EFD - - - HeaderedContentControlExperiment.Tests - - \ No newline at end of file diff --git a/components/HeaderedContentControl/tests/HeaderedContentControl.Tests.shproj b/components/HeaderedContentControl/tests/HeaderedContentControl.Tests.shproj deleted file mode 100644 index 5a76a5e7..00000000 --- a/components/HeaderedContentControl/tests/HeaderedContentControl.Tests.shproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - 863388CB-7C3F-4CD3-8ACE-79F0BB855EFD - 14.0 - - - - - - - - diff --git a/components/HeaderedItemsControl/OpenSolution.bat b/components/HeaderedItemsControl/OpenSolution.bat deleted file mode 100644 index 814a56d4..00000000 --- a/components/HeaderedItemsControl/OpenSolution.bat +++ /dev/null @@ -1,3 +0,0 @@ -@ECHO OFF - -powershell ..\..\tooling\ProjectHeads\GenerateSingleSampleHeads.ps1 -componentPath %CD% %* \ No newline at end of file diff --git a/components/HeaderedItemsControl/samples/Assets/HeaderedItemsControl.png b/components/HeaderedItemsControl/samples/Assets/HeaderedItemsControl.png deleted file mode 100644 index e804b3b5bc812e1d3c66cea244b4bef3f8ad5070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2728 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 i*pL0#kNwz>e*7PU@+kbnzV;{p0000 - - - - - - - - - - - - - - - - - - - - - diff --git a/components/HeaderedItemsControl/samples/HeaderedItemsControl.Samples.csproj b/components/HeaderedItemsControl/samples/HeaderedItemsControl.Samples.csproj deleted file mode 100644 index 28d68742..00000000 --- a/components/HeaderedItemsControl/samples/HeaderedItemsControl.Samples.csproj +++ /dev/null @@ -1,8 +0,0 @@ - - - HeaderedItemsControl - - - - - diff --git a/components/HeaderedItemsControl/samples/HeaderedItemsControl.md b/components/HeaderedItemsControl/samples/HeaderedItemsControl.md deleted file mode 100644 index f952cb09..00000000 --- a/components/HeaderedItemsControl/samples/HeaderedItemsControl.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: HeaderedItemsControl -author: skendrot -description: The HeaderedItemsControl allows items to be displayed with a specified header. -keywords: HeaderedItemsControl, Control, Layout -dev_langs: - - csharp -category: Controls -subcategory: Layout -discussion-id: 0 -issue-id: 0 -icon: Assets/HeaderedItemsControl.png ---- -The `Header` property can be any object and you can use the `HeaderTemplate` to specify a custom look to the header. - -> [!NOTE] -> Setting the `Background`, `BorderBrush` and `BorderThickness` properties will not have any effect on the HeaderedItemsControl. This is to maintain the same functionality as the ItemsControl. - -> [!Sample HeaderedItemsControlSample] - -## Syntax - -```xaml - - - - - -``` - - -## Properties - -| Property | Type | Gets or sets the data used for the header of each control | -| -- | -- | -- | -| Header | object | Gets or sets the data used for the header of each control | -| HeaderTemplate | DataTemplate | Gets or sets the template used to display the content of the control's header | -| Orientation | Orientation | Gets or sets the Orientation to use for layout of the header. If set to Vertical the Header will be above the items. If set to Horizontal the Header will be to the left of the items. | - -### Examples - -- The `Header` property can be set to a string, or any xaml elements. If binding the `Header` to an object that is not a string, use the `HeaderTemplate` to control how the content is rendered. - - *Sample Code* - - ```xaml - - - - - - - - - - ``` - -- Used to control the look of the header. The default value for the `HeaderTemplate` will display the string representation of the `Header`. Set this property if you need to bind the `Header` to an object. - - *Sample Code* - - ```xaml - - - - - - - - ``` diff --git a/components/HeaderedItemsControl/samples/HeaderedItemsControlSample.xaml b/components/HeaderedItemsControl/samples/HeaderedItemsControlSample.xaml deleted file mode 100644 index e1631910..00000000 --- a/components/HeaderedItemsControl/samples/HeaderedItemsControlSample.xaml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/components/HeaderedItemsControl/samples/HeaderedItemsControlSample.xaml.cs b/components/HeaderedItemsControl/samples/HeaderedItemsControlSample.xaml.cs deleted file mode 100644 index 86e2cefa..00000000 --- a/components/HeaderedItemsControl/samples/HeaderedItemsControlSample.xaml.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using CommunityToolkit.WinUI.Controls; - -namespace HeaderedItemsControlExperiment.Samples; - -[ToolkitSample(id: nameof(HeaderedItemsControlSample), "HeaderedItemsControl", description: $"A sample for showing how to create and use a {nameof(HeaderedItemsControl)} control.")] -public sealed partial class HeaderedItemsControlSample : Page -{ - public HeaderedItemsControlSample() - { - this.InitializeComponent(); - Items = "The quick brown fox jumped over the lazy river".Split(' '); - } - public IEnumerable Items { get; } -} diff --git a/components/HeaderedItemsControl/src/AdditionalAssemblyInfo.cs b/components/HeaderedItemsControl/src/AdditionalAssemblyInfo.cs deleted file mode 100644 index 3117b930..00000000 --- a/components/HeaderedItemsControl/src/AdditionalAssemblyInfo.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Runtime.CompilerServices; - -// These `InternalsVisibleTo` calls are intended to make it easier for -// for any internal code to be testable in all the different test projects -// used with the Labs infrastructure. -[assembly: InternalsVisibleTo("HeaderedItemsControl.Tests.Uwp")] -[assembly: InternalsVisibleTo("HeaderedItemsControl.Tests.WinAppSdk")] -[assembly: InternalsVisibleTo("CommunityToolkit.Tests.Uwp")] -[assembly: InternalsVisibleTo("CommunityToolkit.Tests.WinAppSdk")] diff --git a/components/HeaderedItemsControl/src/CommunityToolkit.WinUI.Controls.HeaderedItemsControl.csproj b/components/HeaderedItemsControl/src/CommunityToolkit.WinUI.Controls.HeaderedItemsControl.csproj deleted file mode 100644 index a4efb30c..00000000 --- a/components/HeaderedItemsControl/src/CommunityToolkit.WinUI.Controls.HeaderedItemsControl.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - HeaderedItemsControl - This package contains HeaderedItemsControl. - 8.0.0-beta.1 - - - CommunityToolkit.WinUI.Controls.HeaderedItemsControlRns - - - - - - - $(PackageIdPrefix).$(PackageIdVariant).Controls.$(ToolkitComponentName) - - diff --git a/components/HeaderedItemsControl/src/Dependencies.props b/components/HeaderedItemsControl/src/Dependencies.props deleted file mode 100644 index e622e1df..00000000 --- a/components/HeaderedItemsControl/src/Dependencies.props +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/components/HeaderedItemsControl/src/HeaderedItemsControl.cs b/components/HeaderedItemsControl/src/HeaderedItemsControl.cs deleted file mode 100644 index 15326467..00000000 --- a/components/HeaderedItemsControl/src/HeaderedItemsControl.cs +++ /dev/null @@ -1,93 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -namespace CommunityToolkit.WinUI.Controls -{ - /// - /// Represents a control that contains multiple items and has a header. - /// - public partial class HeaderedItemsControl : ItemsControl - { - /// - /// Initializes a new instance of the class. - /// - public HeaderedItemsControl() - { - DefaultStyleKey = typeof(HeaderedItemsControl); - } - - /// - /// Identifies the dependency property. - /// - public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register( - "Header", - typeof(object), - typeof(HeaderedItemsControl), - new PropertyMetadata(null, OnHeaderChanged)); - - /// - /// Identifies the dependency property. - /// - public static readonly DependencyProperty HeaderTemplateProperty = DependencyProperty.Register( - "HeaderTemplate", - typeof(DataTemplate), - typeof(HeaderedItemsControl), - new PropertyMetadata(null)); - - /// - /// Identifies the dependency property. - /// - public static readonly DependencyProperty OrientationProperty = DependencyProperty.Register( - nameof(Orientation), - typeof(Orientation), - typeof(HeaderedItemsControl), - new PropertyMetadata(Orientation.Vertical)); - - /// - /// Gets or sets the data used for the header of each control. - /// - public object Header - { - get { return GetValue(HeaderProperty); } - set { SetValue(HeaderProperty, value); } - } - - /// - /// Gets or sets the template used to display the content of the control's header. - /// - public DataTemplate HeaderTemplate - { - get { return (DataTemplate)GetValue(HeaderTemplateProperty); } - set { SetValue(HeaderTemplateProperty, value); } - } - - /// - /// Gets or sets the used for the header. - /// - /// - /// If set to the header will be above the content. - /// If set to the header will be to the left of the content. - /// - public Orientation Orientation - { - get { return (Orientation)GetValue(OrientationProperty); } - set { SetValue(OrientationProperty, value); } - } - - /// - /// Called when the property changes. - /// - /// The old value of the property. - /// The new value of the property. - protected virtual void OnHeaderChanged(object oldValue, object newValue) - { - } - - private static void OnHeaderChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - var control = (HeaderedItemsControl)d; - control.OnHeaderChanged(e.OldValue, e.NewValue); - } - } -} diff --git a/components/HeaderedItemsControl/src/HeaderedItemsControl.xaml b/components/HeaderedItemsControl/src/HeaderedItemsControl.xaml deleted file mode 100644 index 0f5c8612..00000000 --- a/components/HeaderedItemsControl/src/HeaderedItemsControl.xaml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - diff --git a/components/HeaderedItemsControl/src/MultiTarget.props b/components/HeaderedItemsControl/src/MultiTarget.props deleted file mode 100644 index b11c1942..00000000 --- a/components/HeaderedItemsControl/src/MultiTarget.props +++ /dev/null @@ -1,9 +0,0 @@ - - - - uwp;wasdk;wpf;wasm;linuxgtk;macos;ios;android; - - \ No newline at end of file diff --git a/components/HeaderedItemsControl/src/Themes/Generic.xaml b/components/HeaderedItemsControl/src/Themes/Generic.xaml deleted file mode 100644 index 3add0105..00000000 --- a/components/HeaderedItemsControl/src/Themes/Generic.xaml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/components/HeaderedItemsControl/tests/HeaderedItemsControl.Tests.projitems b/components/HeaderedItemsControl/tests/HeaderedItemsControl.Tests.projitems deleted file mode 100644 index 2e1a786b..00000000 --- a/components/HeaderedItemsControl/tests/HeaderedItemsControl.Tests.projitems +++ /dev/null @@ -1,11 +0,0 @@ - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - true - D693442A-E55C-4414-AC45-C5631BCD35F9 - - - HeaderedItemsControlExperiment.Tests - - \ No newline at end of file diff --git a/components/HeaderedItemsControl/tests/HeaderedItemsControl.Tests.shproj b/components/HeaderedItemsControl/tests/HeaderedItemsControl.Tests.shproj deleted file mode 100644 index 1689e6b6..00000000 --- a/components/HeaderedItemsControl/tests/HeaderedItemsControl.Tests.shproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - D693442A-E55C-4414-AC45-C5631BCD35F9 - 14.0 - - - - - - - - From 267ce9f3520a0b796b783ee01211b3c22768c136 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Thu, 6 Jul 2023 14:53:31 +0200 Subject: [PATCH 03/13] Adding TreeView sample --- .../samples/HeaderedTreeViewSample.xaml | 36 ++++------ .../samples/HeaderedTreeViewSample.xaml.cs | 65 +++++++++---------- .../HeaderedTreeView/HeaderedTreeView.xaml | 4 +- 3 files changed, 49 insertions(+), 56 deletions(-) diff --git a/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml b/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml index 1ab53e8a..41c8e140 100644 --- a/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml +++ b/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml @@ -9,36 +9,28 @@ mc:Ignorable="d"> - - - - - - - - + + - - + + - - - - + + + + - - + + diff --git a/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml.cs b/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml.cs index fd4c5304..6a9a7e51 100644 --- a/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml.cs +++ b/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml.cs @@ -16,13 +16,13 @@ public HeaderedTreeViewSample() } public ObservableCollection Items { get; } -private ObservableCollection GetData() + private ObservableCollection GetData() + { + var list = new ObservableCollection(); + ExplorerItem folder1 = new ExplorerItem() { - var list = new ObservableCollection(); - ExplorerItem folder1 = new ExplorerItem() - { - Name = "Work Documents", - Children = + Name = "Work Documents", + Children = { new ExplorerItem() { @@ -48,16 +48,15 @@ private ObservableCollection GetData() Name = "Feature Resources Allocation", } } - }; - ExplorerItem folder2 = new ExplorerItem() - { - Name = "Personal Folder", - Children = + }; + ExplorerItem folder2 = new ExplorerItem() + { + Name = "Personal Folder", + Children = { new ExplorerItem() { Name = "Home Remodel Folder", - Type = ExplorerItem.ExplorerItemType.Folder, Children = { new ExplorerItem() @@ -79,31 +78,31 @@ private ObservableCollection GetData() } } } - }; + }; - list.Add(folder1); - list.Add(folder2); - return list; - } - -public class ExplorerItem + list.Add(folder1); + list.Add(folder2); + return list; + } +} + public class ExplorerItem + { + public string? Name { get; set; } + private ObservableCollection? m_children; + public ObservableCollection Children { - public string Name { get; set; } - private ObservableCollection m_children; - public ObservableCollection Children + get { - get + if (m_children == null) { - if (m_children == null) - { - m_children = new ObservableCollection(); - } - return m_children; - } - set - { - m_children = value; + m_children = new ObservableCollection(); } + return m_children; } -} + set + { + m_children = value; + } + } + } diff --git a/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml b/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml index 93878517..c82fe4b2 100644 --- a/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml +++ b/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml @@ -27,6 +27,8 @@ CanReorderItems="{TemplateBinding CanReorderItems}" Footer="{TemplateBinding Footer}" Header="{TemplateBinding Header}" + HeaderTemplate="{TemplateBinding HeaderTemplate}" + FooterTemplate="{TemplateBinding FooterTemplate}" ItemContainerStyle="{TemplateBinding ItemContainerStyle}" ItemContainerStyleSelector="{TemplateBinding ItemContainerStyleSelector}" ItemContainerTransitions="{TemplateBinding ItemContainerTransitions}" @@ -36,4 +38,4 @@ - \ No newline at end of file + From 18f3a48144399e13f0bde3c74bcd0f2049906074 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Thu, 6 Jul 2023 14:54:08 +0200 Subject: [PATCH 04/13] XAML styler --- .../src/HeaderedTreeView/HeaderedTreeView.xaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml b/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml index c82fe4b2..5fd1b364 100644 --- a/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml +++ b/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml @@ -1,4 +1,4 @@ - @@ -26,9 +26,9 @@ CanDragItems="{TemplateBinding CanDragItems}" CanReorderItems="{TemplateBinding CanReorderItems}" Footer="{TemplateBinding Footer}" + FooterTemplate="{TemplateBinding FooterTemplate}" Header="{TemplateBinding Header}" HeaderTemplate="{TemplateBinding HeaderTemplate}" - FooterTemplate="{TemplateBinding FooterTemplate}" ItemContainerStyle="{TemplateBinding ItemContainerStyle}" ItemContainerStyleSelector="{TemplateBinding ItemContainerStyleSelector}" ItemContainerTransitions="{TemplateBinding ItemContainerTransitions}" From b320b60b8a309537ac334e2efe5c3833a81d8069 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Thu, 6 Jul 2023 15:00:05 +0200 Subject: [PATCH 05/13] Adding TreeView icon --- .../samples/Assets/HeaderedTreeView.png | Bin 0 -> 3095 bytes .../HeaderedControls/samples/HeaderedTreeView.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 components/HeaderedControls/samples/Assets/HeaderedTreeView.png diff --git a/components/HeaderedControls/samples/Assets/HeaderedTreeView.png b/components/HeaderedControls/samples/Assets/HeaderedTreeView.png new file mode 100644 index 0000000000000000000000000000000000000000..997dc91cfc91ce74507c3ef252693eeaeb35efbe GIT binary patch literal 3095 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 literal 0 HcmV?d00001 diff --git a/components/HeaderedControls/samples/HeaderedTreeView.md b/components/HeaderedControls/samples/HeaderedTreeView.md index d508a87a..81a03acc 100644 --- a/components/HeaderedControls/samples/HeaderedTreeView.md +++ b/components/HeaderedControls/samples/HeaderedTreeView.md @@ -9,7 +9,7 @@ category: Controls subcategory: Layout discussion-id: 0 issue-id: 0 -icon: Assets/HeaderedItemsControl.png +icon: Assets/HeaderedTreeView.png --- The `Header` property can be any object and you can use the `HeaderTemplate` to specify a custom look to the header. Similiar objects can be set for the `Footer` and `FooterTemplate`. From 74c2d712267710ccb495e16bf1e02e0c3bcb5d55 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Thu, 6 Jul 2023 15:01:49 +0200 Subject: [PATCH 06/13] XAML styler --- components/HeaderedControls/src/Themes/Generic.xaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/HeaderedControls/src/Themes/Generic.xaml b/components/HeaderedControls/src/Themes/Generic.xaml index 61282c0f..7381d438 100644 --- a/components/HeaderedControls/src/Themes/Generic.xaml +++ b/components/HeaderedControls/src/Themes/Generic.xaml @@ -4,8 +4,8 @@ - - + + From b3c08cc5111e5f05c37b1d5ba847031c8ba019c3 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Thu, 6 Jul 2023 15:06:05 +0200 Subject: [PATCH 07/13] Some more XAML styling --- .../src/HeaderedItemsControl/HeaderedItemsControl.xaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml b/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml index a7a86235..c48858df 100644 --- a/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml +++ b/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml @@ -3,7 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="using:CommunityToolkit.WinUI.Controls"> - + From d551bdb83efa33ab7b0fde52ea5951ad70fdb524 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Fri, 7 Jul 2023 15:39:13 +0200 Subject: [PATCH 08/13] Addressing feedback --- .../samples/HeaderedContentControl.md | 8 -- .../samples/HeaderedItemsControl.md | 13 +- .../samples/HeaderedTreeView.md | 12 +- .../HeaderedContentControl.xaml | 5 +- .../HeaderedItemsControl.xaml | 5 +- .../HeaderedTreeView/HeaderedTreeView.xaml | 5 +- .../tests/HeaderedContentControlTestClass.cs | 132 ++++++++++++++++++ .../tests/HeaderedContentControlTestPage.xaml | 17 +++ .../HeaderedContentControlTestPage.xaml.cs | 16 +++ .../tests/HeaderedControls.Tests.projitems | 28 ++++ .../tests/HeaderedItemsControlTestClass.cs | 132 ++++++++++++++++++ .../tests/HeaderedItemsControlTestPage.xaml | 17 +++ .../HeaderedItemsControlTestPage.xaml.cs | 16 +++ .../tests/HeaderedTreeViewTestClass.cs | 132 ++++++++++++++++++ .../tests/HeaderedTreeViewTestPage.xaml | 17 +++ .../tests/HeaderedTreeViewTestPage.xaml.cs | 16 +++ 16 files changed, 537 insertions(+), 34 deletions(-) create mode 100644 components/HeaderedControls/tests/HeaderedContentControlTestClass.cs create mode 100644 components/HeaderedControls/tests/HeaderedContentControlTestPage.xaml create mode 100644 components/HeaderedControls/tests/HeaderedContentControlTestPage.xaml.cs create mode 100644 components/HeaderedControls/tests/HeaderedItemsControlTestClass.cs create mode 100644 components/HeaderedControls/tests/HeaderedItemsControlTestPage.xaml create mode 100644 components/HeaderedControls/tests/HeaderedItemsControlTestPage.xaml.cs create mode 100644 components/HeaderedControls/tests/HeaderedTreeViewTestClass.cs create mode 100644 components/HeaderedControls/tests/HeaderedTreeViewTestPage.xaml create mode 100644 components/HeaderedControls/tests/HeaderedTreeViewTestPage.xaml.cs diff --git a/components/HeaderedControls/samples/HeaderedContentControl.md b/components/HeaderedControls/samples/HeaderedContentControl.md index 6609c458..352dbf47 100644 --- a/components/HeaderedControls/samples/HeaderedContentControl.md +++ b/components/HeaderedControls/samples/HeaderedContentControl.md @@ -35,11 +35,3 @@ The `Header` property can be any object and you can use the `HeaderTemplate` to ``` - -## Properties - -| Property | Type | Gets or sets the data used for the header of each control | -| -- | -- | -- | -| Header | object | Gets or sets the data used for the header of each control | -| HeaderTemplate | DataTemplate | Gets or sets the template used to display the content of the control's header | -| Orientation | Orientation | Gets or sets the Orientation to use for layout of the header. If set to Vertical the Header will be above the content. If set to Horizontal the Header will be to the left of the content. | diff --git a/components/HeaderedControls/samples/HeaderedItemsControl.md b/components/HeaderedControls/samples/HeaderedItemsControl.md index edc35369..00a769b1 100644 --- a/components/HeaderedControls/samples/HeaderedItemsControl.md +++ b/components/HeaderedControls/samples/HeaderedItemsControl.md @@ -27,15 +27,4 @@ The `Header` property can be any object and you can use the `HeaderTemplate` to -``` - - -## Properties - -| Property | Type | Gets or sets the data used for the header of each control | -| -- | -- | -- | -| Header | object | Gets or sets the data used for the header of each control | -| HeaderTemplate | DataTemplate | Gets or sets the template used to display the content of the control's footer | -| Footer | object | Gets or sets the data used for the header of each control | -| FooterTemplate | DataTemplate | Gets or sets the template used to display the content of the control's footer | -| Orientation | Orientation | Gets or sets the Orientation to use for layout of the header. If set to Vertical the Header will be above the items. If set to Horizontal the Header will be to the left of the items. | +``` \ No newline at end of file diff --git a/components/HeaderedControls/samples/HeaderedTreeView.md b/components/HeaderedControls/samples/HeaderedTreeView.md index 81a03acc..d610bf79 100644 --- a/components/HeaderedControls/samples/HeaderedTreeView.md +++ b/components/HeaderedControls/samples/HeaderedTreeView.md @@ -25,14 +25,4 @@ The `Header` property can be any object and you can use the `HeaderTemplate` to -``` - - -## Properties - -| Property | Type | Gets or sets the data used for the header of each control | -| -- | -- | -- | -| Header | object | Gets or sets the data used for the header of each control | -| HeaderTemplate | DataTemplate | Gets or sets the template used to display the content of the control's footer | -| Footer | object | Gets or sets the data used for the header of each control | -| FooterTemplate | DataTemplate | Gets or sets the template used to display the content of the control's footer | \ No newline at end of file +``` \ No newline at end of file diff --git a/components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.xaml b/components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.xaml index 0d1648ff..fdef2ee6 100644 --- a/components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.xaml +++ b/components/HeaderedControls/src/HeaderedContentControl/HeaderedContentControl.xaml @@ -3,7 +3,10 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="using:CommunityToolkit.WinUI.Controls"> - + diff --git a/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml b/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml index 07fb0677..79a2524f 100644 --- a/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml +++ b/components/HeaderedControls/src/HeaderedItemsControl/HeaderedItemsControl.xaml @@ -3,10 +3,11 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="using:CommunityToolkit.WinUI.Controls"> - + diff --git a/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml b/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml index b2564b27..401eaf54 100644 --- a/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml +++ b/components/HeaderedControls/src/HeaderedTreeView/HeaderedTreeView.xaml @@ -43,3 +43,4 @@ + From 4196eef4a69dc5aed6de4ee69c03bbd05602e065 Mon Sep 17 00:00:00 2001 From: michael-hawker <24302614+michael-hawker@users.noreply.github.com> Date: Fri, 7 Jul 2023 16:32:53 -0700 Subject: [PATCH 11/13] Fix for mismatch in WUX/MUXC TreeViewItem type in Sample Caused unhelpful exception when running in UWP --- .../HeaderedControls/samples/HeaderedTreeViewSample.xaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml b/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml index 41c8e140..15b3aec8 100644 --- a/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml +++ b/components/HeaderedControls/samples/HeaderedTreeViewSample.xaml @@ -6,6 +6,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="using:HeaderedItemsControlExperiment.Samples" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:muxc="using:Microsoft.UI.Xaml.Controls" mc:Ignorable="d"> @@ -26,9 +27,9 @@ - + From 0ef6882cd224cff313121c95327974d5371853de Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Mon, 10 Jul 2023 10:04:32 +0200 Subject: [PATCH 12/13] Fix test, sample --- .../HeaderedContentControlComplexSample.xaml | 2 +- .../samples/HeaderedTreeViewSample.xaml.cs | 18 ++++++------ .../tests/HeaderedContentControlTestClass.cs | 28 ------------------- .../tests/HeaderedItemsControlTestClass.cs | 20 ------------- .../tests/HeaderedTreeViewTestClass.cs | 20 ------------- 5 files changed, 10 insertions(+), 78 deletions(-) diff --git a/components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml b/components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml index 5b2ce71d..0168b9e5 100644 --- a/components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml +++ b/components/HeaderedControls/samples/HeaderedContentControlComplexSample.xaml @@ -1,4 +1,4 @@ - + GetData() return list; } } - public class ExplorerItem - { - public string? Name { get; set; } - private ObservableCollection? m_children; + +public class ExplorerItem +{ + public string? Name { get; set; } + private ObservableCollection? _children; public ObservableCollection Children { get { - if (m_children == null) + if (_children == null) { - m_children = new ObservableCollection(); + _children = new ObservableCollection(); } - return m_children; + return _children; } set { - m_children = value; + _children = value; } } - } diff --git a/components/HeaderedControls/tests/HeaderedContentControlTestClass.cs b/components/HeaderedControls/tests/HeaderedContentControlTestClass.cs index 3477afbd..56329212 100644 --- a/components/HeaderedControls/tests/HeaderedContentControlTestClass.cs +++ b/components/HeaderedControls/tests/HeaderedContentControlTestClass.cs @@ -21,34 +21,6 @@ public void SimpleSynchronousExampleTest() Assert.AreEqual(typeof(HeaderedContentControl), type, "Type of HeaderedContentControl does not match expected type."); } - // If you don't need access to UI objects directly, use this pattern. - [TestMethod] - public async Task SimpleAsyncExampleTest() - { - await Task.Delay(250); - - Assert.IsTrue(true); - } - - // Example that shows how to check for exception throwing. - [TestMethod] - public void SimpleExceptionCheckTest() - { - // If you need to check exceptions occur for invalid inputs, etc... - // Use Assert.ThrowsException to limit the scope to where you expect the error to occur. - // Otherwise, using the ExpectedException attribute could swallow or - // catch other issues in setup code. - Assert.ThrowsException(() => throw new NotImplementedException()); - } - - // The UIThreadTestMethod automatically dispatches to the UI for us to work with UI objects. - [UIThreadTestMethod] - public void SimpleUIAttributeExampleTest() - { - var component = new HeaderedContentControl(); - Assert.IsNotNull(component); - } - // The UIThreadTestMethod can also easily grab a XAML Page for us by passing its type as a parameter. // This lets us actually test a control as it would behave within an actual application. // The page will already be loaded by the time your test is called. diff --git a/components/HeaderedControls/tests/HeaderedItemsControlTestClass.cs b/components/HeaderedControls/tests/HeaderedItemsControlTestClass.cs index 1513114b..d7213490 100644 --- a/components/HeaderedControls/tests/HeaderedItemsControlTestClass.cs +++ b/components/HeaderedControls/tests/HeaderedItemsControlTestClass.cs @@ -21,26 +21,6 @@ public void SimpleSynchronousExampleTest() Assert.AreEqual(typeof(HeaderedItemsControl), type, "Type of HeaderedItemsControl does not match expected type."); } - // If you don't need access to UI objects directly, use this pattern. - [TestMethod] - public async Task SimpleAsyncExampleTest() - { - await Task.Delay(250); - - Assert.IsTrue(true); - } - - // Example that shows how to check for exception throwing. - [TestMethod] - public void SimpleExceptionCheckTest() - { - // If you need to check exceptions occur for invalid inputs, etc... - // Use Assert.ThrowsException to limit the scope to where you expect the error to occur. - // Otherwise, using the ExpectedException attribute could swallow or - // catch other issues in setup code. - Assert.ThrowsException(() => throw new NotImplementedException()); - } - // The UIThreadTestMethod automatically dispatches to the UI for us to work with UI objects. [UIThreadTestMethod] public void SimpleUIAttributeExampleTest() diff --git a/components/HeaderedControls/tests/HeaderedTreeViewTestClass.cs b/components/HeaderedControls/tests/HeaderedTreeViewTestClass.cs index 4ef7afc5..61caf983 100644 --- a/components/HeaderedControls/tests/HeaderedTreeViewTestClass.cs +++ b/components/HeaderedControls/tests/HeaderedTreeViewTestClass.cs @@ -21,26 +21,6 @@ public void SimpleSynchronousExampleTest() Assert.AreEqual(typeof(HeaderedTreeView), type, "Type of HeaderedTreeView does not match expected type."); } - // If you don't need access to UI objects directly, use this pattern. - [TestMethod] - public async Task SimpleAsyncExampleTest() - { - await Task.Delay(250); - - Assert.IsTrue(true); - } - - // Example that shows how to check for exception throwing. - [TestMethod] - public void SimpleExceptionCheckTest() - { - // If you need to check exceptions occur for invalid inputs, etc... - // Use Assert.ThrowsException to limit the scope to where you expect the error to occur. - // Otherwise, using the ExpectedException attribute could swallow or - // catch other issues in setup code. - Assert.ThrowsException(() => throw new NotImplementedException()); - } - // The UIThreadTestMethod automatically dispatches to the UI for us to work with UI objects. [UIThreadTestMethod] public void SimpleUIAttributeExampleTest() From d3a452ef50b19e7bb3c68c758e07f8315632282d Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Mon, 10 Jul 2023 16:59:13 -0500 Subject: [PATCH 13/13] Include Controls in PackageId --- .../CommunityToolkit.WinUI.Controls.HeaderedControls.csproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/HeaderedControls/src/CommunityToolkit.WinUI.Controls.HeaderedControls.csproj b/components/HeaderedControls/src/CommunityToolkit.WinUI.Controls.HeaderedControls.csproj index 04781f13..94103446 100644 --- a/components/HeaderedControls/src/CommunityToolkit.WinUI.Controls.HeaderedControls.csproj +++ b/components/HeaderedControls/src/CommunityToolkit.WinUI.Controls.HeaderedControls.csproj @@ -10,4 +10,8 @@ + + + $(PackageIdPrefix).$(PackageIdVariant).Controls.$(ToolkitComponentName) +