当前位置: 首页 > 知识库问答 >
问题:

如何在WPF中使用向上键和向下键移动treeviewitem选择

澹台庆
2023-03-14

我们为树视图控件创建一个层次数据模板。我们可以使用鼠标单击树项来更改选择。现在,我们要使用键盘上下键来上下移动所选内容。但似乎行不通。我用谷歌和Stackoverflow搜索了很多,但是失败了。

所以我为此创建了一个新的线程,你能给我一些帮助吗?thx。

<HierarchicalDataTemplate x:Uid="HierarchicalDataTemplate_1" x:Key="My_data_template" >
    <ContentControl x:Uid="ContentControl_1" MouseDoubleClick="MouseDoubleClick" MouseRightButtonDown="MouseRightClick">
        <Grid x:Uid="Grid_2" Background="Transparent">
            <Grid.ColumnDefinitions>
                <ColumnDefinition x:Uid="ColumnDefinition_1" Width="*"/>
                <ColumnDefinition x:Uid="ColumnDefinition_2" Width="Auto"/>
            </Grid.ColumnDefinitions>
            <StackPanel x:Uid="StackPanel_3" HorizontalAlignment="Left" Orientation="Horizontal" Grid.Column="0">
                <TextBlock x:Uid="TextBlock_13" Text="{Binding Name}" VerticalAlignment="Center" Margin="3,0,0,1" TextWrapping="NoWrap"/>
            </StackPanel>
            <CheckBox x:Uid="CheckBox_3" HorizontalAlignment="Right" Click="CheckBox_Click" Grid.Column="1" ToolTip="On/Off">
            </CheckBox>
        </Grid>
    </ContentControl>
</HierarchicalDataTemplate>

另一个问题是,我可以使用鼠标单击文本块来选择项目,但是当我使用鼠标单击复选框时,该项目无法被选中。当我点击复选框时,是否无论如何要选择树视图项?

我将模板应用到treeview的方式如下:

<TreeView   x:Name="tv_pointcloud" x:Uid="TreeListView_1" 
    ItemTemplateSelector="{StaticResource DataAccessor}" 
    ......
/>

public class DataAccessor : DataTemplateSelector
{
    public DataAccessor()
    {
        Init();
    }

    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        var element = container as FrameworkElement;
        var template = element.FindResource("My_data_template") as DataTemplate;
        return template;
    }

    ......
}

谢谢

共有2个答案

韩鸿
2023-03-14

键盘命令等被称为手势。也许这是一个让你开始的好地方:

WPF中的键盘快捷键

袁晋鹏
2023-03-14

我和你有同样的问题,在WPF树视图中,我无法使用箭头键导航。我发现的问题是获得焦点的复选框。因此,我为复选框设置了“Focusable=False”,现在树视图中的导航与预期一样:

<代码>

 类似资料:
  • 我的应用程序中有一个TreeView对象,由文件夹层次结构填充。我想尝试“爬升”此层次结构,以便获得当前选定项目的路径。我尝试使用TreeViewItem提供的DependencyObject。但是我很困惑,我怎么才能让父母成为一个树上项目,这样我才能继续“爬”上去。 有没有办法将DependencyObject转换成TreeViewItem?

  • 我正在用python编写一个蛇游戏,蛇可以向上、向左和向右移动,当我试图向下移动时(使用箭头)总是会出错。我正在处理碰撞,因为蛇会与自身碰撞(蛇头接触身体),屏幕将显示“游戏结束-你输了”。

  • 问题内容: 有人可以帮助我使用 Java* 使用 WebDriver 自动 向下滚动功能 吗? *** 就我而言,当我垂直向下滚动鼠标时,对于yahoo邮件就会显示( 可见 )。 问题答案: 您可以使用以下代码垂直向下滚动: 同样,也可以通过将y坐标更改为负值来向上滚动: 您还可以使用以下代码: 对于向下滚动: 向上滚动:

  • 本文向大家介绍C#实现ListView选中项向上或向下移动的方法,包括了C#实现ListView选中项向上或向下移动的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现ListView选中项向上或向下移动的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 问题内容: 我正在尝试创建一个简单游戏的开始。我要做的第一件事是将图形导入到我的代码中,然后在屏幕上移动它。我能够在屏幕上画一个球并四处移动,但是当我从文件导入图形时,无法四处移动。我想念什么或做错什么? 我的司机是在另一个班级,如下所示: 问题答案: 这里有两个大问题: 您正在从中读取文件。 永远 不要这样做,因为这会不必要地减慢绘图速度。可能在构造函数中读取一次图像,然后在图形中使用存储的im

  • 问题内容: 这是一个简单的问题,我有一个简单的HashMap,我想将其反转键和值。 我想创建一个新的HashMap,在其中放置相反的内容。 问题答案: 它们都是独一无二的,是的 如果您确定自己的值是唯一的,则可以遍历旧地图的条目。 另外,您可以使用Guava提供的双向地图,并使用方法: 随着java-8的发布,您也可以通过以下方式进行操作: 最后,我将我的贡献添加到了质子包装库中,该库包含Stre