0

我想制作包含 TabItems 的 TabControl。在 TabItem 中,我将拥有包含各种控件(ListBox、TextBox、Grid 等)的 StackPanel。如何制作每个 TabItem 的模板并制作多个?

例如,假设我想制作包含食品类别(肉类、水果、蔬菜等)选项卡的 TabControl。我可以通过制作带有名称和标题的 TabItems 来单独制作它们。但相反,我只想制作一个像下面这样的并将其用作模板,因为选项卡可能会增加。

<TabControl x:Name="TabControl" Margin="3,3,3,3" MinWidth="200">
    <TabItem Name="FoodCategory1">
        <!-- Contents of this does not really matter but its same thing for each "FoodCategory" -->
        <StackPanel>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition MinWidth="20"></ColumnDefinition>
                    <ColumnDefinition Width="Auto"></ColumnDefinition>
                    <ColumnDefinition Width="Auto"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <TextBox x:Name="InputBox" Grid.Column="0" Margin="5,5,5,5"></TextBox>
                <Button x:Name="AddButton" Grid.Column="1" HorizontalAlignment="Right" Margin="0,0,5,0" Width="20" Height="20"></Button>
                <Button x:Name="RemoveButton" Grid.Column="2" HorizontalAlignment="Right" Margin="0,0,5,0" Width="20" Height="20"></Button>
            </Grid>

            <ListBox x:Name="FoodList" Margin="3,3,3,3" MinHeight="40"></ListBox>
        </StackPanel>
        <!-- example end -->
    </TabItem>
</TabControl>

当然,从我的代码回来,我想通过 FoodCategoryX.InputBox 等访问每个单独的 tabitems 内容。我应该如何处理这个?

任何帮助,将不胜感激。

谢谢你。

4

1 回答 1

1

根据您编写的内容,您将编写一个 UserControl 或 CustomControl 作为容器并提供您所追求的视觉效果。这两个中最简单的可能是 UserControl。然后,您将使用控件的实例填充每个 TabItems,这样您就可以按名称处理 TabItems。

对于您关于按名称解决各种子控件的其他问题,这是可以实现的,但更强大的方法是通过公开依赖属性来使用 WPF 的绑定功能。编写 UserControl 很简单,这里有一个工作示例

于 2013-05-31T01:37:41.740 回答