【问题标题】:How to build Behavior Tree editor using WPF?如何使用 WPF 构建行为树编辑器?
【发布时间】:2015-12-02 12:31:08
【问题描述】:

我们将使用 WPF 开发一个行为树编辑器。 但是,我们对 WPF 完全陌生。 如何生成代表树节点的形状组件,并且组件应该能够响应鼠标事件,如鼠标单击。

您对此有什么建议吗?

【问题讨论】:

    标签: wpf behavior-tree


    【解决方案1】:

    您可以为您的树指定不同的HierarchicalDataTemplate。它们由类名自动选择。您还可以为您的基本类型指定一个。确保不要使用接口,而是使用真正的类。

    因此,如果您对视图模型使用不同的类,则可以这样处理:

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

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

    【讨论】:

    • 但我们需要的不是树形视图,而是类似CFG(控制流图)的视图。
    • 请注意,树形控件不适合显示无方向图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 2010-10-08
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多