2010-11-23 2 views
0

I, in denen ein Anpassen TabControl zu entwickeln versuche ich das Ganze TabControl in drei Teile aufteilen werden:Wie kann ich die Standardkontroll Vorlage eines TabControl wechseln nach meiner Wahl

1) Tab-Header 2) gemeinsame Region (für alle Tab) und 3) Tab Content Region für bestimmte Tab Update: alt text

Bitte geben Sie Ihre besten Antworten oder Proben, wenn Sie dann haben, wird jede Art von Hilfe geschätzt.

Vielen Dank im Voraus

+0

Sie versuchen, ein benutzerdefiniertes Tab-Steuerelement zu entwickeln, aber ich bin durch Ihre Frage verwirrt. Werden Sie Code schreiben, für den Sie Hilfe benötigen, oder wollen Sie nur, dass jemand es für Sie entwickelt? – Lazarus

+0

Ich brauche Hilfe von der Idee, Beispiel, Wissen oder irgendetwas, was auch immer der Weg, auf dem mir jemand helfen kann, das ist es ... – SharpUrBrain

Antwort

1

Sie können die TabControl Vorlage überschreiben, was Sie sein wollen, auch so dass es eine statische Region haben, die unabhängig von sichtbaren bleibt, welchen Reiter ausgewählt ist.

In der Vorlage verwende ich normalerweise ein Panel mit IsItemsHost=True, um zu definieren, wo der "Tab" -Teil der Registerkarte Steuerelement angezeigt wird und <ContentPresenter ContentSource="SelectedContent" />, wo ich den ausgewählten Tab-Inhalt angezeigt werden soll.

Die TabControl.ItemTemplate kann auch überschrieben werden, um Ihre Tabs weiter zu definieren, und TabControl.ItemContainer kann überschrieben werden, um nur den TabContent-Teil des TabControl zu ändern.

+0

Vielen Dank Rachel, es ist, was ich suche. Aber wenn ich den TabContent überschreibe und wenn ich den TabContent-Bereich mit zwei Teilen ändere, dann Während ich den Inhalt für bestimmte Tab laden werde, dann muss ich jedes Mal die beiden Bereiche aufteilen, die ich nicht möchte. Haben Sie eine Idee, wie Sie das verwenden können, ohne den gesamten TabContent-Bereich immer wieder zu laden? – SharpUrBrain

+0

Ich bin mir nicht sicher, was Sie meinen ... der statische Bereich sollte Teil der 'ControlTemplate' der TabControl sein, nicht der SelectedTab. Der einzige Teil, der beim Wechseln der Tabs neu geladen wird, ist der 'ContentPresenter'-Bereich der ControlTemplate der Registerkarte. Ihr statischer Inhalt sollte wahrscheinlich nicht in diesem Bereich sein. – Rachel

1

Hmm ... Ich verstehe nicht ganz, warum man dies tun würde, aber wenn ich Sie wäre, würde ich diese WPF implementieren.

Ich würde die Registerkarte Header als ein StackPanel mit Schaltflächen (deren Stil muss offensichtlich überarbeitet werden, so dass es wie Tabs aussieht) implementieren. Der Inhalt wäre ein Rechteck mit einem Raster, dessen Inhalt sich beim Klicken auf eine Schaltfläche ändert. Und das ist es für das grundlegende Skelett. Ich verstehe deine gemeinsame Region nicht. Es ist auch schön, in jedes Register ein kleines "X" einzufügen, um es zu schließen. Das kann auch mit Tasten gemacht werden.

Es könnte sinnvoll sein, mit Expression Blend ein solches Steuerelement zu erstellen.

Best wishes, Christian

+0

Vielen Dank für Ihr Interesse an meiner Anwendung, nebenbei möchte ich Tabs im verwenden 1. Region, dh an der Kopfposition und einige allgemeine Steuerungen in der zweiten Region, auf die von jeder der Registerkarten zugegriffen werden kann, und ihre Funktionalität ist für alle Registerkarten gleich. 3. Region für spezifischen Inhalt für bestimmte Registerkarte bedeutet, wenn der Benutzer auf Tab1 klicken wird dann Tab1 Inhalt wird auf der dritten Region angezeigt, das ist es – SharpUrBrain

Verwandte Themen