Как добавить кнопки на разных вкладках с помощью TabControl в WPF - PullRequest
1 голос
/ 11 февраля 2010

У меня сделаны основные вкладки, и я хочу, чтобы на каждой вкладке был свой набор кнопок, но кнопка добавляется в главное окно, а вкладка отсутствует. Когда я иду к коду, вырезаю кнопку и вставляю ее во вкладку, которой я хочу, она работает, но только для 1 кнопки, затем для второй кнопки я получаю сообщение об ошибке:

"Объект TabItem уже имеет дочерний элемент и не может добавить Button.TabItem может принять только один дочерний элемент."

Вот как выглядит код:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="394" Width="570">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0*" />
        <ColumnDefinition Width="548*" />
    </Grid.ColumnDefinitions>
    <TabControl Margin="9,30,11,10" Name="tabControl1" Grid.Column="1" SelectionChanged="tabControl1_SelectionChanged">
        <TabItem Name="Admin" Header="Admin">

        </TabItem>
        <TabItem Name="Staff" Header="Staff" />
        <TabItem Name="Student" Header="Student" />
        <TabItem Name="Diary" Header="Diary" />
        <TabItem Name="Timetables" Header="Timetables" />
        <TabItem Name="Assignments" Header="Assignments" />
        <TabItem Name="Courses" Header="Courses" />
    </TabControl>
    <Menu Height="16" Name="menu1" VerticalAlignment="Top" Grid.Column="1" />
    <Button Grid.Column="1" Height="23" HorizontalAlignment="Left" Margin="18,64,0,0" Name="button1" VerticalAlignment="Top" Width="118">Add/Edit Student</Button>
</Grid>

Я хочу реализовать «button1» внутри вкладки «Admin»

Работает, но не работает, когда я нажимаю вторую кнопку

Заранее спасибо

Ответы [ 3 ]

6 голосов
/ 11 февраля 2010

Добавьте <StackPanel>,<Grid>, <Border>, и т. Д. - любой элемент, который может содержать несколько дочерних элементов, точно так же, как и вы <Window>. Это верно для ЛЮБОГО элемента wpf, который может принимать только один дочерний элемент. Кнопка, кнопка переключения и т. Д.

<TabItem>
<Grid>
.......
</Grid>
</TabItem
2 голосов
/ 11 февраля 2010

TabItem унаследован от класса ContentControl, который допускает только 1 объект в качестве его содержимого, поэтому сначала необходимо добавить элемент управления, который допускает несколько объектов, например Canvas или Сетка , затем добавьте все свои кнопки к этому объекту.

1 голос
/ 11 февраля 2010

Вы получаете эту ошибку, потому что TabItem может содержать только один UIElement как дочерний элемент. Вы можете использовать какую-то панель (например, Grid, DockPanel, StackPanel, Canvas ...) для упорядочивания всех ваших элементов UIE.

...