2009-09-01 7 views

Odpowiedz

11

W ogóle nie trzeba używać numeru TabControl. można po prostu powiązać swoją ListBox do listy przedmiotów i umieścić ContentControl obok niej, zobowiązany do wybranej pozycji:

<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 :). Napisałeś to szybciej, niż kliknąłem przycisk "Opublikuj odpowiedź". Chciałem tylko napisać o scenariuszu master-details z ListBox, ale zrobiłeś to szybciej :). Twoje zdrowie. – Anvaka

12

Kontrolki WPF zostały zaprojektowane tak, aby umożliwić dokładnie to, co chcesz. Aby ponownie użyć funkcji kontroli, całkowicie zastępując reprezentację wizualną. Będziesz musiał stworzyć własną ControlTemplate dla TabControl. Możesz znaleźć TabControl ControlTemplate Example on MSDN. Będziesz także musiał przestudiować Control Authoring Overview on MSDN.

Rzeczywiście, dokumentacja Silverlight 3 jest nieco łatwiejsza do strawienia, a nawet jeśli istnieją pewne różnice, jeśli chodzi o stylizację sterowania, podstawowe pojęcia pozostają takie same. Możesz przeczytać Customizing the Appearance of an Existing Control by Using a ControlTemplate on MSDN, aby zapoznać się z szablonami kontrolnymi, a następnie przestudiować TabControl Styles and Templates, aby dowiedzieć się, co jest potrzebne do utworzenia własnego szablonu kontrolnego w Silverlight.

Możesz użyć Expression Blend, aby wyodrębnić domyślny szablon TabControl w WPF.

+3

Wielki writeup że podsumowuje moc i intencje WPF kontroluje ładnie. Muszę jeszcze zostać uznanym za godnego zdolności do głosowania, w przeciwnym razie jest to kolejna przydatna odpowiedź, której udzieliłbym. Być może będę pamiętać, aby wrócić do tego, ponieważ jest to na moje własne pytanie, czy kiedykolwiek dotrę do tego punktu. – jan