WPF窗口/ usercontrol继承XAML

时间:2014-10-18 15:25:37

标签: c# wpf xaml user-controls tabcontrol

我正在为游戏实现一个编辑器,并且遇到了一些我似乎无法弄清楚的不便。我的Google-fu也失败了,我找不到我想要的答案。

我的编辑器基本上为它管理的每个对象都有一个详细信息窗口,这个详细信息窗口始终是相同的:一个选项卡控件,在选项卡上称为“属性”,以及一个或多个特定于该对象的选项卡窗口是对

我认为有一个BaseEditor.xaml会很好,它有TabControl并定义了Properties-tab,你可以从中扩展并添加更多标签。

我尝试了多个解决方案,一个是通过创建一个UserControl,在其上添加一个TabControl,然后添加一个CompositeCollection,它绑定到代码隐藏中的一个属性,然后我可以在添加时进行技术修改用户控制到一个窗口。但是,它没有丝毫工作,我也不满意我必须将UserControl添加到Window,而不是从Window扩展。

总而言之,这是我的第一次尝试:

<UserControl>
    <Grid>
        <TabControl HorizontalAlignment="Left" Height="300" VerticalAlignment="Top" Width="300">
            <TabControl.ItemsSource>
                <CompositeCollection>
                    <CollectionContainer Collection="{Binding TabItems}" />
                    <TabItem Header="Properties" />
                </CompositeCollection>
            </TabControl.ItemsSource>
        </TabControl>
    </Grid>
</UserControl>

然后在Window上使用它:

<Window>
    <Grid>
        <UserControl>
            <UserControl.TabItems>
                <TabItem Header="Test" />
            <UserControl.TabItems>
        </UserControl>
    </Grid>
</Window>

这是伪代码,但如上所述,它不起作用,它只会显示属性选项卡,就是这样。

任何指针都会非常感激!

1 个答案:

答案 0 :(得分:0)

我最终创建了一个TabControl,您可以根据需要注册标签(例如,通过RegisterTab - 方法,而不是尝试通过XAML定义。