Si lo que desea hacer es simplemente hacer que el código sea más manejable, le recomendaría definir los datos de cada pestaña en un control de usuario, pero aún así tener el TabItem en el control de la pestaña principal.
Vamos a suponer que el código original era la siguiente:
<TabControl>
<TabItem Header="Tab 1">
<Grid>
<TextBlock Text="Tab Data" />
</Grid>
</TabItem>
</TabControl>
Para que el código sea más manejable que podría romper el contenido de la ficha en un control de usuario, tales como:
<UserControl x:Class="WpfApplication19.Tab1Data"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Grid>
<TextBlock Text="Tab Data" />
</Grid>
</UserControl>
y luego usar ese usuario control en su TabControl como este:
<TabControl>
<TabItem Header="Tab 1">
<tabData:Tab1Data />
</TabItem>
</TabControl>
Si realmente desea incluir th e TabItem en su control de usuario, entonces puede hacerlo creando primero un control de usuario, y luego cambie el tipo de control de usuario al tipo TabItem (asegúrese de cambiar esto tanto en el nodo raíz xaml como en el código subyacente).
Esto le deja con un control de ficha que se ve así:
<TabControl>
<tabData:TabItem1 />
<tabData:TabItem2 />
<tabData:TabItem3 />
</TabControl>
Y cada TabItem1 'Control de Usuario' sería de tipo TabItem. Aquí está un ejemplo:
<TabItem x:Class="WpfApplication19.TabItem1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Header="Tab 1"
>
<Grid>
<TextBlock Text="Tab Data" />
</Grid>
</TabItem>
Y como he mencionado, es importante cambiar el código subyacente para que se extienda TabItem en lugar de control de usuario:
public partial class TabItem1 : TabItem
{
public TabItem1()
{
InitializeComponent();
}
}
Muchas gracias. ¡Funciona perfectamente como lo demostró en su respuesta! –
tabdata viene de donde? –
¿Cómo hiciste para que funcione la propiedad 'xmlns' como lo has mostrado? Por lo que yo sé, requiere estar en una asamblea extranjera. –