Bonjour à tous,

J'ai vu plusieurs sujets sur le forum qui traitaient du problème mais j'ai pas réussi à résoudre le miens à l'aide des réponses. Je me permet donc de venir grossir le nombre de sujet avec mes petites histoires .

Voilà l'idée général :
Je créer un arbre de décision d'après une base de donnée dans un canvas.
Il y a plusieurs modèle possible donc le tout dois être dynamique.
L'utilisateur choisit le modèle puis le canvas se remplit des objets et ils sont positionnés sur le canvas qui "grandit" en fonction.
Le problème arrive donc au moment ou les objet sortent de l'espace alloué au canvas.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
  <Grid x:Name="LayoutRoot">
        <Grid.ColumnDefinitions>
            <ColumnDefinition x:Name="Menu" Width="Auto" />
            <ColumnDefinition x:Name="Contenu" Width="*" />
        </Grid.ColumnDefinitions>
//[...] Bout de code qui concerne la partie Menu de la grid
        <ScrollViewer x:Name="rootScroll" Grid.Column="1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
            <Border x:Name="rootBorder">
                <Canvas x:Name="rootCanvas"/>
            </Border>
        </ScrollViewer>
    </Grid>
Du coup j'essaie de faire un truc comme ça, en me disant que le border encapsulera le canvas qui lui fournira une taille qui du coup permettra au ScrollViewer de déterminer si oui ou non il appliquera les ascenseurs.

Mais au moment de l'initialisation, si j'ai bien compris, la taille est nulle donc pas de barre.

Alors dans le Code Behind après avoir remplit mon canvas j'ai essayé de faire ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
rootCanvas.Width = rootCanvas.ActualWidth;
rootCanvas.Height = rootCanvas.ActualHeight;
rootBorder.Height = rootCanvas.Height;
rootBorder.Width = rootCanvas.Width;
Mais sans effet étant donné que je ne vois pas comment faire comprendre au ScrollViewer qu'il y a eu du changement et qu'il doit éventuellement créer des barres

Est ce que je fais fausse route ? Est ce que les tailles des objets encapsulés sont elles bien prise en compte ? Y a une solution à mon problème sans imposer une taille fixe au canvas ?

Merci

Valorn