6
votes

Nouvelle fenêtre dans un tabitem?

est-il possible d'ouvrir une autre fenêtre dans un tabcontrol 's tabitem ?

La raison pour laquelle je veux faire est que si j'en ai 5 tabitem S dans mon tabcontrol , le fichier unique que je codule tous ces tabitem s et leurs actions associées deviendront très gros. Il serait donc agréable s'il était possible de donner à chaque tabitem sa propre fenêtre fichier .

ou comment résolvez-vous le problème dans lequel la fenêtre Contrôlez le fichier Tabcontrol devient trop grande?


0 commentaires

5 Réponses :


2
votes

faire un usercontrol pour chaque tabitem.


0 commentaires

5
votes

Vous avez plusieurs choix:

  • ajoutez un ou plusieurs Dictionnaires de ressources à Votre application contenant des ressources avec des modèles et des styles pour les différentes vues que vous organisez dans vos onglets. Cette approche fonctionne bien si vous n'avez que besoin de maintenir la séparation des arbres visuels uniquement.
  • créer Contrôles utilisateur pour chaque Affichage (avec son propre fichier XAML et Class) et utilisez une instance pour chaque vue différente dans les onglets. Cette approche vous permet d'encapsuler une logique commerciale spécifique et de l'arbre visuel correspondant ensemble.
  • génère une partie de l'interface utilisateur du code. Celui-ci n'a aucun avantage, sauf t vous rend XAML plus petit. Et vos fichiers .cs sont-ils trop gros, vous pouvez toujours les diviser dans plusieurs fichiers de code et utiliser des classes partielles. (Il suffit de jeter celui-ci pour la complétude: -))

0 commentaires

8
votes
<Window ...
     xmlns:local="clr-namespace:MyNamespace"
     >
     <TabControl>
          <TabItem Header="FirstTab">
               <local:MyFirstTabUserControl/>  
          </TabItem>
          <TabItem Header="SecondTab">
               <local:MySecondTabUserControl/>  
          </TabItem>
          <TabItem Header="ThirdTab">
               <local:MyThirdTabUserControl/>  
          </TabItem>
     </TabControl>
</Window>
Your each TabUserControl is actually simple UserControl, since TabItem can host any control as its own child.

0 commentaires

0
votes

Vous pouvez utiliser un UserControl comme mentionné déjà.

Mais vous pouvez également utiliser le contrôle de page. Chaque "fenêtre" serait une page et l'onglet aurait une carte de navigation. J'ai déjà utilisé cette approche et ça marche bien. Je préfère la route d'UserControl, mais les deux sont valides.


0 commentaires

4
votes

Vous pouvez également définir la teneur en Tabitem égale à votre fenêtre Contenu

EX: [Fenêtre TenueType est votre fenêtre] P>

WindowsType oWindow = new WindowType();
TabItem oTab = new TabItem();
oTab.Content = oWindow.Content;


0 commentaires