IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Problème ouverture du fenêtre


Sujet :

Windows Presentation Foundation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Problème ouverture du fenêtre
    Bonjour à tous,

    voilà j'ai une mainwindow dans laquelle j'ai un canvas (qui s'appelle dessin) avec lequel je peux dessiner des trucs 'à la paint', dont le code a l'air de marcher plutôt bien :

    En fait ça fait même un peu plus que ça puisque ça trace le symétrique du dessin par rapport à la ligne médiane du canvas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    public MainWindow()
            {
                InitializeComponent();
                this.dessin.MouseMove += new MouseEventHandler(dessin_MouseMove);
            }
     
            private Point debut;
            private Point debut2;
     
            private void dessin_MouseDown(object sender, MouseButtonEventArgs e)
            {
     
                debut = e.GetPosition(this.dessin);
                debut2.X = debut.X;
                debut2.Y = dessin.ActualHeight - debut.Y;
            }
     
     
            void dessin_MouseMove(object sender, MouseEventArgs e)
            {
                UIElement element = e.OriginalSource as UIElement;
                if (element == null) return;
     
                Point point = e.GetPosition(this.dessin);
                Point point2 = new Point();
                point2.X = point.X;
                point2.Y = dessin.ActualHeight - point.Y;
     
                if (e.LeftButton==MouseButtonState.Pressed)
                {
                    Line ligne = new Line();
                    ligne.Stroke = Brushes.Black;
                    ligne.StrokeThickness = 4;
                    dessin.Children.Add(ligne);
                    ligne.X1 = debut.X;
                    ligne.Y1 = debut.Y;
                    ligne.X2 = point.X;
                    ligne.Y2 = point.Y;
                    debut = point;
     
                    Line ligne2 = new Line();
                    ligne2.Stroke = Brushes.Green;
                    ligne2.StrokeThickness = 4;
                    dessin.Children.Add(ligne2);
                    ligne2.X1 = debut2.X;
                    ligne2.Y1 = debut2.Y;
                    ligne2.X2 = point2.X;
                    ligne2.Y2 = point2.Y;
                    debut2 = point2;
                }
            }
    Le truc c'est que je voulais avoir la même fonction sur une autre fenêtre (classe Debit) que j'ouvrirai en cliquant sur un bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Debit windowDebit = new Debit();
     
            private void ButtonDebit_Click(object sender, RoutedEventArgs e)
            {
                windowDebit.ShowDialog();
            }
    et le code de la classe Debit (sui hérite de Window) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    public partial class Debit : Window
        {
            public Debit()
            {
                InitializeComponent();
     
                Line ligneOrdonnee = new Line();
                ligneOrdonnee.X1 = 30;
                ligneOrdonnee.X2 = 30;
                ligneOrdonnee.Y1 = 30;
                ligneOrdonnee.Y2 = 340;
                ligneOrdonnee.Stroke = (Brush)this.Resources["BrushBlueLine"];
                ligneOrdonnee.StrokeThickness = 3;
                repereDebit.Children.Add(ligneOrdonnee);
     
                Line ligneAbscisse = new Line();
                ligneAbscisse.X1 = 30;
                ligneAbscisse.X2 = 470;
                ligneAbscisse.Y1 = 340;
                ligneAbscisse.Y2 = 340;
                ligneAbscisse.Stroke = (Brush)this.Resources["BrushBlueLine"];
                ligneAbscisse.StrokeThickness = 3;
                repereDebit.Children.Add(ligneAbscisse);
     
                this.repereDebit.MouseMove += new MouseEventHandler(repereDebit_MouseMove);
            }
     
            private Point debut;
     
            private void repereDebit_MouseDown(object sender, MouseButtonEventArgs e)
            {
                // Get the position of the element relative to the Canvas.
                debut = e.GetPosition(this.repereDebit);
            }
     
            void repereDebit_MouseMove(object sender, MouseEventArgs e)
            {
                UIElement element = e.OriginalSource as UIElement;
                if (element == null) return;
     
                // Get the position of the element relative to the Canvas.
                Point point = e.GetPosition(this.repereDebit);
     
                if (e.LeftButton == MouseButtonState.Pressed)
                {
                    Line ligne = new Line();
                    ligne.Stroke = Brushes.Black;
                    ligne.StrokeThickness = 4;
                    repereDebit.Children.Add(ligne);
                    ligne.X1 = debut.X;
                    ligne.Y1 = debut.Y;
                    ligne.X2 = point.X;
                    ligne.Y2 = point.Y;
                    debut = point;
                }
            }
     
        }
    Mais ça ne marche pas , quand je clique sur le bouton la fenêtre s'affiche mais je ne peux rien faire (même pas cliquer sur les boutons de la fenêtre Debit)

    Auriez-vous une idée ? Je ne sais pas trop comment utiliser Window.Show() et Window.ShowDialog()

    Merci d'avance pour votre aide, et n'hésitez pas si vous avez la moindre suggestion, please help me !!

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Personne ?

Discussions similaires

  1. Problème ouverture nouvelle fenêtre
    Par kewti dans le forum Général Java
    Réponses: 2
    Dernier message: 16/06/2014, 15h51
  2. Problème ouverture de fenêtre
    Par shawn12 dans le forum MFC
    Réponses: 4
    Dernier message: 23/01/2008, 15h50
  3. Problème d'ouverture de fenêtre avec ie6.
    Par volontier dans le forum IE
    Réponses: 2
    Dernier message: 11/10/2006, 15h16
  4. [MFC] problème ouverture de fenêtre
    Par pytpyt dans le forum MFC
    Réponses: 1
    Dernier message: 19/04/2006, 14h05
  5. [débutant] problème de maintien d'ouverture de fenêtre
    Par Antigonos Ier Gonatas dans le forum C++
    Réponses: 6
    Dernier message: 02/04/2006, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo