我觉得这应该是一个简单的问题,但似乎不是。
我有一个WPF TreeView,它由按钮组成:
<TreeView ItemsSource="{Binding Categories}" Tag="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding ChildCategories}">
<Button
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.ViewDocumentsCommand}"
CommandParameter="{Binding}"
Style="{DynamicResource TreeButton}"
Content="{Binding Description}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
Button Command将数据加载到WPF表单上的另一个控件中。一旦用户点击该控件的内容,按钮就会失去焦点。但是,我希望Button保留焦点样式,以便用户知道哪个是他们点击的最后一个按钮。
我已尝试使用InactiveSelectionHighlightBrushKey,但据我所知,这对按钮无效。我怎么能这样做呢?
编辑:要求上下文。实际上,我已经使用TreeView制作了一个迷你版的Windows资源管理器。每个节点对应一个文件夹,您可以使用展开/折叠按钮显示子文件夹。通过ContextMenu右键单击树中所需的位置来创建子文件夹。单击该文件夹以查看树旁边的文件列表。单击文件会导致文件夹失去焦点,因此用户无法分辨他们所在的“文件夹”。