Bonjour,
Je souhaite développer une application Photoshop-Like.
Pour cela, j'ai créé un UserControl, IHM_Editor, qui va afficher mon espace de travail d'édition.
Cet IHM_Editor est placé dans un TabControl de mon application principale (ci-dessous, sa déclaration dans le code XAML de ma fenêtre principale) :
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <TabItem Header="IHM Editor" GotFocus="TabItem_DBE_GotFocus"> <GroupBox BorderBrush="DarkGray"> <GroupBox.Header> <Label FontSize="11">IHM Editor</Label> </GroupBox.Header> <Grid> <IHMDll:IHM_Editor Name="IHM_Editor_UserControl" Canvas.Left="0" Canvas.Top="0"/> </Grid> </GroupBox> </TabItem>
Ce UserControl contient un dockPanel avec un menu et un canvas :
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <DockPanel LastChildFill="True" Name="IHM_Editor_DockPanel"> <!-- MENU --> <Menu Name="IHM_Editor_Menu" DockPanel.Dock="Top"> <!-- Declaration des MenuItems --> </Menu> <Canvas Name="IHM_Editor_Canvas" DockPanel.Dock="Top" Canvas.Left="0" Canvas.Top="0" > </Canvas> </DockPanel>
Dans le menu, comme dans photoshop, lorsque je fais New ou Open, je crée une nouvelle fenêtre IHM_CurrentScreen_Window et je souhaite venir la positionner dans mon espace de travail, en 0,0 du Canvas.
Le problème est qu'une fenêtre ne peut pas être "children" d'un canvas et que je ne peux donc pas utiliser les propriétés Left et Top.
Ma question est donc la suivante :
Comment puis-je trouver les coordonnées absolues de mon IHM_Editor_Canvas dans la fenêtre de l'application principale et les utiliser pour venir positionner ma fenêtre IHM_CurrentScreen_Window ?
Je vous remercie d'avance pour votre aide.
Partager