Ich möchte den Inhalt der Hauptoberfläche (das Zeug unter der Multifunktionsleiste) in einer WPF-Anwendung ändern, wenn auf eine Multifunktionsleisten-Registerkarte geklickt wird. Ich benutze das Büroband, nicht das ist wichtig. Also welche WPF Containersteuerung soll ich verwenden und wie würde ich das machen? Sollte ich nur verschiedene Steuerelemente mit Sichtbarkeit haben, oder was? Ich bin kein WPF-Experte, also brauche ich ein wenig Inspiration.
Vorwort, indem ich sage, dass ich bezweifle, dass dies der beste Weg ist, dies zu tun.
Dies ist mein Stil für RibbonTab notice IsSelected ist an IsSelected in The view model
gebunden %Vor%Dies ist Ansichtsmodellcode
%Vor%Im Konstruktor für das TabViewModel nehme ich einen Parameter für das ViewModel des Inhalts
%Vor%Dann habe ich ein ItemsControl verwendet, um den ausgewählten Inhalt in meinem XAML anzuzeigen
%Vor%Und das ContentControlTemplate, das ich habe, ist
%Vor%Stellen Sie außerdem sicher, dass Sie ein Datamaplate haben, das Ihren Inhalt auf eine Ansicht zeigt
Hoffe, das hilft.
Die Idee ist, Inhalt unter dem Band gestapelt in Schichten zu haben, (wie in Photoshop oder einem anderen grafischen Editor) und zeigen nur Schicht, die Sie diesen Moment brauchen. Verbinde einfach Visibility
deiner Ebene mit IsSelected
Eigenschaft der gewünschten Registerkarte
MainGrid ist hier ein Container für Layer (auch Grids):
%Vor%... und Sie brauchen überhaupt keinen Code!
P.S. Oh, ich vergesse, dass du BooleanToVisibilityConverter
natürlich in Ressourcen deklarieren musst
Ich denke, es gibt einen einfacheren Weg, es zu tun. Ich habe es so gemacht:
%Vor%Und in deinem Code dahinter:
%Vor%Ich weiß, dass dies ein älterer Thread ist, aber ich habe ein Problem damit und habe keine vb.net-Hilfe gefunden, aber ich habe eine Lösung für sich entdeckt ... also hier ist es:
Geben Sie Ihrem RibbonTab einen Namen, damit Sie mit dem Code dahinter umgehen können. Ich weiß, dass es mehrere Möglichkeiten zum Hinzufügen von Ansichten und Steuerelementen gibt, aber hier ist, was ich getan habe ... Ich habe einfach ein neues Raster für meine Ansicht innerhalb des Haupt-Rasters nach dem Ribbon hinzugefügt. zB:
%Vor%Dann der Code hinter (VB.NET)
%Vor%