feat: implement tree like visual.

This commit is contained in:
Dong Bin
2025-07-04 16:09:33 +08:00
parent 817eb9acc9
commit dbc41249d8
4 changed files with 49 additions and 4 deletions

View File

@@ -18,7 +18,7 @@
<Setter Property="Template">
<ControlTemplate TargetType="u:AnchorItem">
<StackPanel>
<ContentPresenter Content="{TemplateBinding Header}" />
<ContentPresenter Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" />
<ItemsPresenter Margin="8 0 0 0" ItemsPanel="{TemplateBinding ItemsPanel}" />
</StackPanel>
</ControlTemplate>

View File

@@ -44,11 +44,20 @@ public class AnchorItem : HeaderedItemsControl, ISelectable
{
base.OnAttachedToVisualTree(e);
_root = this.GetLogicalAncestors().OfType<Anchor>().FirstOrDefault();
if (ItemTemplate is null && _root?.ItemTemplate is not null)
{
SetCurrentValue(ItemTemplateProperty, _root.ItemTemplate);
}
if (ItemContainerTheme is null && _root?.ItemContainerTheme is not null)
{
SetCurrentValue(ItemContainerThemeProperty, _root.ItemContainerTheme);
}
}
protected override void OnPointerPressed(PointerPressedEventArgs e)
{
var item = new TreeViewItem();
// var item = new TreeViewItem();
base.OnPointerPressed(e);
if (e.Handled) return;
if (_root is null)