Ich habe ein TabControl, die auf eine Sammlung von Viewmodels gebunden ist, die in eine entsprechende übersetzt Kommen Sie in den Tab gezogen werden:WPF TabControl nehmen Größe der größten Tab
<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" />
ich versucht habe zu finden eine Möglichkeit, das TabControl immer mit der maximalen Breite und Höhe eines seiner untergeordneten Elemente zu zeichnen. Let WPF Tabcontrol height assume height of largest item? ein paar Möglichkeiten erwähnt dies in den Antworten zu erreichen (von dem, was ich udnerstood):
- mit SharedSizeGroup mit Grid - scheint zu einem Datatemplate auf dem tatsächlichen Inhalt des TabControl, die überschreibt die angewendet werden, um zu brauchen automatisierte Ansicht Zeichnung achieveing durch die VM-> Ansicht Zuordnung in der Resource erstellt
- mit einer Breite/Höhe-Wandler, der meine TabControl erfordern würde anstelle von Viewmodels auf eine Sammlung von UI-Elemente gebunden werden
Hat jemand haben Sie Erfahrung in der Lösung eines ähnlichen Problems? Ich scheine jedes Mal mehr Wände zu schlagen, wenn ich Fortschritte mache.
[Diese Antwort] (http://stackoverflow.com/a/14865928/ 302677) kann auf dem richtigen Weg sein. Ich denke, dass Sie den ItemsContainerGenerator verwenden müssen, um das UI-Element für jedes Element in der ItemsSource zu generieren und die Größe des Elements zu bestimmen (möglicherweise mit Code aus [dieser Antwort] (http://stackoverflow.com/a/1074344)/302677)?) Um herauszufinden, wie groß die maximale Größe wäre. – Rachel