2009-09-01 11 views

Respuesta

11

No necesita usar un TabControl en absoluto. Se podía vincular a su ListBox a una lista de elementos, y poner un ContentControl junto a él, unido al elemento seleccionado:

<DockPanel> 
    <ListBox Name="listBox" 
      DockPanel.Dock="Left" 
      ItemsSource="{Binding Items}" 
      DisplayMemberPath="Name"/> 
    <ContentControl Content="{Binding SelectedItem, ElementName=listBox}" 
        ContentTemplate="{StaticResource theTemplate}"/> 
</DockPanel> 
+0

He-he :). Usted escribió esto más rápido que presioné el botón "Publicar su respuesta". Solo quería escribir sobre el escenario de detalles maestros con ListBox, pero lo hizo más rápido :). Aclamaciones. – Anvaka

12

Los controles WPF están diseñados para permitir exactamente lo que desea. Para reutilizar la funcionalidad de control mientras se reemplaza completamente la representación visual. Deberá crear su propio ControlTemplate para el TabControl. Puede encontrar un TabControl ControlTemplate Example on MSDN. También deberás estudiar el Control Authoring Overview on MSDN.

De hecho, encuentro que la documentación de Silverlight 3 es algo más fácil de digerir, y aunque hay algunas diferencias cuando se trata de controlar el diseño, los conceptos fundamentales siguen siendo los mismos. Puede leer Customizing the Appearance of an Existing Control by Using a ControlTemplate on MSDN para obtener información sobre plantillas de control y luego estudiar TabControl Styles and Templates para descubrir qué se necesita para crear su propia plantilla de control en Silverlight.

Puede usar Expression Blend para extraer la plantilla predeterminada TabControl en WPF.

+3

Gran valoración crítica que resume el poder y la intención de WPF controla muy bien. Aún no se me ha considerado merecedor de la posibilidad de votar, de lo contrario, esta es otra respuesta útil a la que habría dado crédito. Quizás recordaré volver a este ya que es mi propia pregunta si alguna vez llego a ese punto. – jan

Cuestiones relacionadas