3

ツリービュー コントロールの HierarchicalDataTemplate を作成します。マウスを使用してツリー項目をクリックすると、選択を変更できます。ここで、キーボードの上下キーを使用して、選択範囲を上下に移動します。しかし、それはうまくいかないようです。Google や Stackoverflow でいろいろ検索しましたがだめでした。

この件について新しいスレッドを立てたので、どなたか教えていただけないでしょうか?どうも。

<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>

別の質問は、マウスを使用してテキストブロックをクリックしてアイテムを選択できることですが、マウスを使用して CheckBox をクリックすると、アイテムを選択できません。CheckBoxをクリックしたときにツリービュー項目を選択する方法はありますか?

テンプレートをツリービューに適用する方法は次のとおりです。

<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;
    }

    ......
}

ありがとう。

4

2 に答える 2

9

私はあなたと同じ問題を抱えていました.WPFツリービューでは、矢印キーを使用してナビゲートできませんでした. 私が見つけた問題は、フォーカスを取得していたチェックボックスでした。そこで、チェックボックスに「Focusable = False」を設定すると、ツリービューのナビゲーションが期待どおりになりました。

<CheckBox Focusable="False" ... />

于 2013-09-12T12:37:51.007 に答える
0

キーボードコマンドなどはジェスチャと呼ばれます。おそらく、これはあなたが始めるのに良い場所です:

WPF のキーボード ショートカット

于 2013-07-01T10:42:04.780 に答える