Mam TabControl który jest związany z kolekcji ViewModels, które są tłumaczone na odpowiednie dać się wciągnąć w zakładce:WPF TabControl wziąć rozmiar największego karcie
<Window.Resources>
<ResourceDictionary>
<DataTemplate DataType="{x:Type charting:LineFormatViewModel}">
<charting:LineFormatView />
</DataTemplate>
<DataTemplate DataType="{x:Type charting:IndexSettingsViewModel}">
<charting:IndexSettingsView />
</DataTemplate>
....
</ResourceDictionary>
</Window.Resources>
<TabControl ItemSource="Binding ViewModels" />
Próbowałam znaleźć sposób, aby zawsze narysować TabControl na maksymalnej szerokości i wysokości dowolnego z jego dzieci. Let WPF Tabcontrol height assume height of largest item? wymienia kilka sposobów na osiągnięcie tego w odpowiedziach (z tego co ja udnerstood):
- z wykorzystaniem siatki z SharedSizeGroup - Wydaje się, muszą być stosowane do DataTemplate na rzeczywistej zawartości TabControl, który nadpisuje zautomatyzowane Zobacz rysunek achieveing przez VM-> Widok mapowania utworzonej w ResourceDictionary
- użyciu konwertera szerokość/wysokość, co wymagałoby mojego TabControl być związany z kolekcji elementów UI zamiast ViewModels
Czy ktoś masz jakieś doświadczenie w rozwiązywaniu podobnego problemu? Wydaje mi się, że uderzam coraz więcej murów za każdym razem, gdy robię postępy w tej sprawie.
[Ta odpowiedź] (http://stackoverflow.com/a/14865928/ 302677) może być na dobrej drodze. Myślę, że będziesz musiał użyć ItemsContainerGenerator, aby wygenerować element interfejsu dla każdego elementu w ItemSource, i określić rozmiar tego elementu (być może za pomocą kodu z [tej odpowiedzi] (http://stackoverflow.com/a/1074344/302677)?), Aby ustalić, jaki byłby maksymalny rozmiar. – Rachel