Announcement

Collapse
No announcement yet.

HeaderedContentControl vs. TabControl

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • HeaderedContentControl vs. TabControl

    Hallo,

    Wo genau liegen die Unterschiede zwischen HeaderedContentControl und TabControl. Bei welchem hat man unterm Strich mehr Möglichkeiten? Wann verwendet man das eine, wann das andere? Gibt es Unterschiede bei WPF und Silverlight?

    Ich hab mir jetzt ein Projekt aufgebaut mit einem HeaderedContentControl. Darin habe ich ein TabItem, das nie geschlossen werden kann und darf, sowie weitere Items die bei Bedarf angezeigt und auch wieder geschlossen werden können. Funktioniert auch soweit, aber wie kann ich das Feld zum Schließen eines TabItems unsichtbar machen? Und wenn ich jetzt umsteige auf ein TabControl, kommt die Frage, wie ich so ein Schließfeld einblenden kann.

    Bei meinem HeaderedContentControl habe ich zudem das Problem dass eine View die darin angezeigt wird, nicht das gesamte Fenster ausfüllt sondern nur einen Bereich der durch die Marigin und MinHeight-Werte der in ihr enthaltenen Elemente bestimmt ist. Bei einer anderen View, die ein DataGrid mit einer langen Liste enthält, musste ich hingegen mit einem MaxHeight die Höhe des DataGrid begrenzen, da ich sonst nicht mehr die komplette Liste sehen konnte. HorizontalAlignment und VerticalAlignment stehen an allen denkbaren Stellen auf "Stretch". Bei einem versuchsweise eingebauten leeren TabControl scheint es dieses Problem nicht zu geben. Im MVVM Demo http://msdn.microsoft.com/de-de/magazine/dd419663.aspx wird so ein HeaderedContentControl verwendet, aber da gibt es dieses Problem auch nicht, deshalb warte ich lieber etwas, bevor ich auf ein TabControl umstelle und andere Probleme bekomme.


    Danke - Günther
    Günther

  • #2
    Hallo,

    das "vs" im Titel ist ungünstig denn "TabControls is HeaderedConentControl". Schau dir mal die Vererbungshierarchie in der MSDN an.
    Darin sind auch die anderen Fragen erklärt.


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Die Vererbungshirarchie sagt mir das aber nicht so deutlich:

      System.Windows.Controls.Control
      System.Windows.Controls.ItemsControl
      System.Windows.Controls.Primitives.Selector
      System.Windows.Controls.TabControl


      System.Windows.Controls.Control
      System.Windows.Controls.ContentControl
      System.Windows.Controls.HeaderedContentControl

      Und warum sollte es zwei Klassen geben, wenn beide ein und dasselbe sind. Irgendwelche Unterschiede muß es doch geben.
      Zuletzt editiert von gfoidl; 16.09.2010, 16:33.
      Günther

      Comment


      • #4
        Hallo,

        Und warum sollte es zwei Klassen geben, wenn beide ein und dasselbe sind.
        Die beiden Klasse sind ja nicht dasselbe. Die eine ist die Basisklasse für die andere. Das ist in der MSDN deutlich zu sehen oder sonst auch nachzulesen.

        Quizfrage: Sind Stream und FileStream dasselbe? Es gibt ja auch 2 Klassen...

        Solche "Vererbungsprüfungen" können mit dem is-Operator geprüft werden -> daher das is im vorigen Beitrag.


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Originally posted by gfoidl View Post
          Das ist in der MSDN deutlich zu sehen
          Also ich sehe das nicht. wer hier von wem ableitet. Wie man so schön sagt - den Wald vor lauter Bäumen sehe ich nicht. Auch die Sache mit dem Schließfeld und mit der Fensterhöhe finde ich nicht. Und glaub mir, ich hab mehr als einmal nachgelesen.

          Ein FileStream ist ein Stream, der auf Files "spezialisiert" ist. Da sagt es ja der Name schon.
          Günther

          Comment


          • #6
            Hallo,

            Also ich sehe das nicht. wer hier von wem ableitet.
            Schau mal auf das angehängte Bild. Ich sehe das klar - hoffentlich du jetzt auch.
            Sonst kannst du auch mit dem Reflektor schauen, oder ...


            mfG Gü
            Attached Files
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Da sehe ich es jetzt auch.

              Hier zum Beispiel steht das nicht so:
              http://msdn.microsoft.com/en-us/libr...abcontrol.aspx


              Der Sache mit dem Schließfeld bin ich auf der Spur.
              Danke - Günther


              Edit: Bei dem Schließfeld dachte ich, es sei Standard. Ich hab es dann in einer Ressourcendatei versteckt gefunden und dann auch die Problemlösung :-)
              Zuletzt editiert von Günther Weber; 16.09.2010, 21:59.
              Günther

              Comment

              Working...
              X