如何使用WPF构建行为树编辑器?

如何使用WPF构建行为树编辑器?,wpf,behavior-tree,Wpf,Behavior Tree,我们将使用WPF开发一个行为树编辑器。 然而,我们对WPF是完全陌生的。 如何生成表示树节点的形状组件,这些组件应该能够响应鼠标右键单击之类的鼠标事件 您对此有什么建议吗?您可以为您的树指定不同的层次结构数据模板。它们由类名称自动选择。也可以为基本类型指定一个。确保不要使用接口,而是使用真正的类 因此,如果您对视图模型使用不同的类,您可以使用如下内容: <TreeView ItemsSource="{Binding MyTreeVariable}" SelectedItem

我们将使用WPF开发一个行为树编辑器。 然而,我们对WPF是完全陌生的。 如何生成表示树节点的形状组件,这些组件应该能够响应鼠标右键单击之类的鼠标事件


您对此有什么建议吗?

您可以为您的树指定不同的
层次结构数据模板。它们由类名称自动选择。也可以为基本类型指定一个。确保不要使用接口,而是使用真正的类

因此,如果您对视图模型使用不同的类,您可以使用如下内容:

<TreeView
    ItemsSource="{Binding MyTreeVariable}"
    SelectedItemChanged="MyTree_SelectedItemChanged">
    <TreeView.Resources>
        <HierarchicalDataTemplate ItemsSource="{Binding Path=Children}" DataType="{x:Type self:MyBaseType}">
            <StackPanel Orientation="Horizontal">
                <Rectangle Width="16" Height="16"/>
                <TextBlock Text="{Binding Path=Name}"/>
            </StackPanel>
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Path=Children}" DataType="{x:Type self:MySpecialType1}">
            <StackPanel Orientation="Horizontal">
                <Ellipse Width="16" Height="16"/>
                <TextBlock Text="{Binding Path=Name}"/>
            </StackPanel>
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Path=Children}" DataType="{x:Type self:MySpecialType2}">
            <StackPanel Orientation="Horizontal">
                <!--- Triangle -->
                <Polygon Points="50,0 100,100 0,100" Width="16" Height="16"/>
                <TextBlock Text="{Binding Path=Name}"/>
            </StackPanel>
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>


如果你想通过数据来区分不同的行为,你可以使用
DataTrigger
Setter
,但我推荐上面所示的方法。

但我们需要的不是树视图,而是类似CFG(控制流图)的视图。请注意,树控件不适合显示非定向图。