Je voudrais changer le contenu de la surface principale (les trucs situés sous le ruban lui-même) dans une application WPF lorsqu'une onglet Ruban est cliquée. J'utilise le ruban de bureau, pas cela importe beaucoup. Alors, quel contrôle du conteneur WPF devrais-je utiliser et comment le ferais-je? Devrais-je juste avoir diverses contrôles avec une visibilité cachée ou quoi. Je ne suis pas un expert WPF, j'ai donc besoin d'une petite inspiration. P>
4 Réponses :
Défonce malade en disant que je doute que c'est la meilleure façon de le faire.
Ceci est mon style pour la notification de Ribbontab isselected est liée à Isselected dans le modèle de vue p> <DataTemplate x:Key="ContentControlTemplate">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ContentControl Grid.Row="0" VerticalAlignment="Stretch" Height="Auto" VerticalContentAlignment="Stretch" Content="{Binding SelectedContent}" />
</Grid>
</DataTemplate>
S'il vous plaît fournir plus de détails! Ces fragments de code ne suffisent pas pour faire ma journée :)
J'ai découvert une solution:
Donnez votre nom à votre Ribbontab afin que vous puissiez le gérer dans le code derrière.
Je sais qu'il y a plusieurs façons d'ajouter des vues et des contrôles, mais voici ce que j'ai fait ...
J'ai simplement ajouté une nouvelle grille à mon avis dans la grille principale après le ruban. IE: p> puis le code derrière (vb.net) p>
Je suppose qu'il y a un moyen plus simple de le faire. Je l'ai fait comme ceci: et dans votre code derrière: p>
L'idée est d'avoir du contenu inférieur au ruban empilé dans des couches, (comme dans Photoshop ou tout autre éditeur graphique) et afficher uniquement un calque dont vous avez besoin de ce moment. Il suffit de lier Maingrid Voici un conteneur pour les couches (qui sont également des grilles): P> visibilité code> de votre couche sur isselected code> Propriété de l'onglet souhaitée <Grid x:Name="MainGrid">
<Grid Visibility="{Binding IsSelected, Converter={StaticResource BooleanToVisibilityConverter}, ElementName=ribbonTab2}">
<Image x:Name="ImgMain" Source="x.jpg"/>
</Grid>
<Grid Visibility="{Binding IsSelected, Converter={StaticResource BooleanToVisibilityConverter}, ElementName=ribbonTab1}">
<Image x:Name="ImgXtra" Source="y.jpg"/>
</Grid>
</Grid>
Je pense que selon Microsoft's ULA, vous ne pouvez pas utiliser d'interface utilisateur de ruban pouvant changer de contenu de la surface principale lorsque vous modifiez l'onglet. Chaque onglet est supposé uniquement avoir des boutons de barre d'outils et ne pas modifier l'apparence du contenu.
Je ne suis pas sûr que tu as raison. Pensez à la façon dont Word fonctionne lorsque vous changez de mode d'affichage.
Klaus, pouvez-vous s'il vous plaît fournir plus de détails sur la manière dont vous avez résolu ceci?