Tree
可为任意数量条目虚拟化的树,即 uikit:Tree。
示例可交互
Live demo unavailable
<uikit:Tree Width="240" Height="240" HorizontalAlignment="Left">
<uikit:TreeItem Label="src" IsExpanded="True">
<uikit:TreeItem Label="components" IsExpanded="True">
<uikit:TreeItem Label="button.rs" />
<uikit:TreeItem Label="tree.rs" />
</uikit:TreeItem>
<uikit:TreeItem Label="lib.rs" />
</uikit:TreeItem>
<uikit:TreeItem Label="assets" IsDisabled="True">
<uikit:TreeItem Label="logo.svg" />
</uikit:TreeItem>
<uikit:TreeItem Label="Cargo.toml" />
</uikit:Tree>用法
uikit:Tree 把树中可见的部分排成一个行列表并对其虚拟化,因此任意规模的树都能保持流畅。其行具有 Tree 的外观。把 uikit:TreeItem(Label、子条目、IsExpanded、IsDisabled)作为子元素或放在 ItemsSource 中。对于你自己的对象,ChildrenSelector(或 ItemTemplate 中的 TreeDataTemplate)提供条目的子项,DisabledSelector 禁用条目,Expand、Collapse 与 IsItemExpanded 用于设置和读取展开状态。ItemTemplate 绘制图标之后的内容。
- 按下即选中一行,并打开或关闭文件夹。上、下方向键移动选择并在两端循环;右方向键打开、左方向键关闭所选文件夹,回车键切换其状态。
SelectionChanged、Expanded与Collapsed报告这些变化。 - 右键按下会用选中色的边框标记该行,但不选中它(
RightClickedItem)。 RevealItem(item, strategy)打开该条目的各级文件夹并将其滚动到可见范围;把SelectedItem设为隐藏的条目同样会打开其文件夹。ScrollToItem(index, strategy)滚动到Entries中的某一行。
示例
五十个包,每个包两百个文件:只有视图内的行会被实例化。
Live demo unavailable
<uikit:Tree Width="280" Height="300" HorizontalAlignment="Left"
ItemsSource="{x:Static local:TreeSamples.Workspace}" />