WPF窗口/用户控件继承XAML
本文关键字:继承 XAML 控件 用户 窗口 WPF | 更新日期: 2023-09-27 18:27:09
我正在为一个游戏实现一个编辑器,遇到了一个我似乎无法理解的小麻烦。我的谷歌功夫也让我无法找到答案,无论我想要的是否可能。
我的编辑器基本上为它管理的每个对象都有一个详细窗口,这个详细窗口总是一样的:一个选项卡控件,在选项卡上称为"属性",以及一个或多个特定于该窗口所针对对象的选项卡。
我想最好有一个BaseEditor.xaml,它定义了TabControl和Properties选项卡,您可以根据需要扩展和添加更多选项卡。
我尝试了多种解决方案,一种是制作UserControl,在其上添加TabControl,然后向其添加CompositeCollection,该CompositeCollection绑定到代码后面的一个属性,然后在将用户控件添加到窗口时,我可以对其进行技术修改。然而,它一点也不起作用,而且我也不高兴我必须将UserControl添加到窗口中,而不是从窗口扩展。
总而言之,这是我的第一次尝试:
<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>
<Grid>
<UserControl>
<UserControl.TabItems>
<TabItem Header="Test" />
<UserControl.TabItems>
</UserControl>
</Grid>
</Window>
这是伪代码,但正如所说,它不起作用,它只会显示属性选项卡,仅此而已
任何建议都将不胜感激!
我最终制作了一个TabControl,您可以根据需要向其注册选项卡(例如,通过RegisterTab
-方法,而不是试图通过XAML定义它。