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

C# Discussion :

[WPF] Leds clignotantes


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 5
    Par défaut [WPF] Leds clignotantes
    Bonjour à tous !
    Ayant un TP que je doit rendre bientôt à mon prof, je sollicite votre aide pour m'aider à la deuxième partie
    Il est plutôt simple : on a deux images à faire clignoter; l'une à l'aide d'un bouton on/off, jusque la pas de problèmes, et une autre qui doit clignoter toute seule, et où on peut modifier son affichage d'intervalle à l'aide d'un slider

    Pour la première partie, je n'ai pas de soucis, c'est plutôt pour la deuxième que je galère
    Voici mon code :
    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
    namespace WPF_Voyants
    {
        /// <summary>
        /// Logique d'interaction pour MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
     
            private void checkBoxMarche_Checked(object sender, RoutedEventArgs e)
            {
                imgMarche1.Visibility = Visibility.Hidden;
            }
     
            private void checkBoxMarche_Unchecked(object sender, RoutedEventArgs e)
            {
                imgMarche1.Visibility = Visibility.Visible;
            }
     
            private void checkBoxAlarme_Checked(object sender, RoutedEventArgs e)
            {
     
                if (imgAlarme2.IsVisible)
                {
                    imgAlarme2.Visibility = Visibility.Hidden;
     
                }
                if (imgAlarme1.IsVisible)
                {
                    imgAlarme2.Visibility = Visibility.Visible;
                }
     
     
            }
     
            private void checkBoxAlarme_Unchecked(object sender, RoutedEventArgs e)
            {
                imgAlarme2.Visibility = Visibility.Visible;
            }
        }
    }
    Je pensais pouvoir régler cela avec une boucle while, mais ça ne fonctionne pas Pareil avec deux if que j'ai ici, même en choisissant plusieurs autre moyens avec les images 1 et 2

    Voici une capture d'écran :

    Nom : leds.png
Affichages : 618
Taille : 150,3 Ko

    L'idéal étant tout d'abord, de faire en sorte que dès que la case on/off est coché, l'image disparaît pour faire apparaître l'image qu'il y a derrière :

    Nom : help2.png
Affichages : 591
Taille : 135,5 Ko

    Et ainsi de suite...
    Je voudrais que quelqu'un m'aide pour cette partie, ça serait très gentil !

    Bonne journée

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    timer avec interval bindé au slider
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 5
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    timer avec interval bindé au slider

    Je vois, je voudrais bien ajouter un timer mais il est grisé quand je fais "Afficher tout dans la boite à outils "

    Nom : aled.png
Affichages : 613
Taille : 176,1 Ko

    Ais-je peut-être oublié d'installer un composant ?

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    tu fais du wpf avec la boite à outils de windows forms ? étrange ...

    un timer ca ne se pose pas, ca s'instancie dans le code (dispatchertimer devrait convenir)
    sinon une boucle avec de l'async await avec une propriété interval bindée
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour
    mmh, storyboard est ton ami pour gérer des feux clignotants ou un gyrophare avertisseur.
    Tu dois utiliser ObjectAnimationUsingKeyFrames ,le monstre qui anime toutes sortes d'objet
    code xaml exemple wpf qui anime du "rouge" bitmap1.bmp au "jaune" bitmap2.bmp:
    Code XAML : 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
    <Window x:Class="WpfBooleanAnimation.Window1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="Window1" Height="300" Width="300">
        <Window.Resources>
            <Image x:Key="MyImage1" Source="Images/Bitmap1.bmp"/>
            <Image x:Key="MyImage2" Source="Images/Bitmap2.bmp"/>
        </Window.Resources>
        <StackPanel Orientation="Vertical" Margin="20">
     
            <Image Name="image"  HorizontalAlignment="Stretch"
                    VerticalAlignment="Stretch" 
                    Height="200" Width="200"
                    Source="Images/Bitmap1.bmp">
                <Image.Triggers>
                    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                        <BeginStoryboard>
                            <Storyboard>
                                <ObjectAnimationUsingKeyFrames 
                                BeginTime="00:00:00" 
                                RepeatBehavior="Forever"
                                Duration="0:0:2"
                                Storyboard.TargetName="image"
                                Storyboard.TargetProperty="(Image.Source)">
                                    <DiscreteObjectKeyFrame KeyTime="00:00:00.50">
                                        <DiscreteObjectKeyFrame.Value>
                                            <BitmapImage UriSource="Images/Bitmap1.bmp" />
                                        </DiscreteObjectKeyFrame.Value>
                                    </DiscreteObjectKeyFrame>
                                </ObjectAnimationUsingKeyFrames>
                                <ObjectAnimationUsingKeyFrames 
                                BeginTime="00:00:00.00" 
                                RepeatBehavior="Forever"
                                Duration="0:0:2"
                                Storyboard.TargetName="image"
                                Storyboard.TargetProperty="(Image.Source)">
                                    <DiscreteObjectKeyFrame KeyTime="00:00:00.50">
                                        <DiscreteObjectKeyFrame.Value>
                                            <BitmapImage UriSource="Images/Bitmap2.bmp" />
                                        </DiscreteObjectKeyFrame.Value>
                                    </DiscreteObjectKeyFrame>
                                </ObjectAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Image.Triggers>
            </Image>
        </StackPanel>
    </Window>
    bon code...

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 5
    Par défaut
    Alors effectivement, j'utilise un dispatcher timer instanciée Ca semble se rapprocher du but, mais par contre la leds rouge ne clignote pas en intervalle voulue, et l'image rouge est remplacée par la noire, et ça ne continue pas :/

    Je vous met mon nouveau code ci-dessus (le .cs) :
    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
    60
    61
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.Windows.Threading;
     
    namespace WPF_Voyants
    {
        /// <summary>
        /// Logique d'interaction pour MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            DispatcherTimer disTime;
            public MainWindow()
            {
                InitializeComponent();
     
            }
     
            private void checkBoxMarche_Checked(object sender, RoutedEventArgs e)
            {
                imgMarche1.Visibility = Visibility.Hidden;
            }
     
            private void checkBoxMarche_Unchecked(object sender, RoutedEventArgs e)
            {
                imgMarche1.Visibility = Visibility.Visible;
            }
     
            private void checkBoxAlarme_Checked(object sender, RoutedEventArgs e)
            {
                disTime = new DispatcherTimer();
                disTime.Interval = TimeSpan.FromSeconds(1);
                disTime.Tick += disTimeTicker;
                disTime.Start();
     
            }
     
            private void disTimeTicker(object sender, EventArgs e)
            {
                imgAlarme2.Visibility = Visibility.Visible;
                imgAlarme2.Visibility = Visibility.Hidden;
            }
     
            private void checkBoxAlarme_Unchecked(object sender, RoutedEventArgs e)
            {
                imgAlarme2.Visibility = Visibility.Visible;
            }
        }
    }
    Et une capture d'écran de mon soucis :

    https://ibb.co/VQsdyf6
    https://ibb.co/QJC19KF

    De plus, quand je décoche on/off, l'image rouge s'affiche encore une dernière fois et disparaît par la suite :/
    Si vous pouviez m'aider à régler ce menu détail...

Discussions similaires

  1. [PC fixe] Ecran CRT qui ne s'allume pas avec LED Verte clignotante
    Par hackoofr dans le forum Ordinateurs
    Réponses: 2
    Dernier message: 19/09/2012, 09h08
  2. LED clignotante ou feu de signalisation
    Par coool dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/05/2011, 13h45
  3. [Carte mère] LED clignotante sur P5B Deluxe
    Par DiabloZizi dans le forum Composants
    Réponses: 0
    Dernier message: 20/07/2010, 11h33
  4. Réponses: 2
    Dernier message: 24/11/2007, 11h56
  5. Meshes clignotantes !
    Par Francky033 dans le forum DirectX
    Réponses: 3
    Dernier message: 30/07/2003, 15h19

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