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 :

WPF et écran tactile


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Par défaut WPF et écran tactile
    Bonjour à toutes et à tous,

    J'ai un petit problème sur une application.
    Lors d'un clique gauche (avec la souris) sur un StackPanel, celui-ci recherche si une mise à jour est disponible. Jusque là tout fonctionne.

    Le client a installé l'application sur PC écran tactile tout-en-un sous windows 7.
    La recherche des màj fonctionne mais une fois que la MessageBox est fermée, un clique (en tactile) n'importe où sur la fenêtre courante de l'application ré-ouvre la MessageBox avec le même message (màj dispo ou soft à jour). Pour le moment le seul moyen pour régler ce problème est d'utiliser une souris

    Lorsque l'on clique (en tactile) sur le MessageBoxButton.OK (dans le cas présent le soft est à jour) on dirait que le bouton ne s’enfonce pas

    Voici le code pour la recherche des màj :

    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
    Private Sub stck_ud_MouseLeftButtonDown(sender As System.Object, e As System.Windows.Input.MouseButtonEventArgs) Handles stck_ud.MouseLeftButtonDown
    	Mouse.OverrideCursor = Cursors.Wait
    	Dim downloadUrl As String = ""
    	Dim newVersion As Version = Nothing
    	Dim xmlUrl As String = "http://url.com/dossier/updates.xml"
    	Dim reader As XmlTextReader = Nothing
     
    	Try
    		reader = New XmlTextReader(xmlUrl)
    		reader.MoveToContent()
    		Dim elementName As String = ""
     
    		If (reader.NodeType = XmlNodeType.Element) AndAlso (reader.Name = "soft") Then
    			While reader.Read()
    				If reader.NodeType = XmlNodeType.Element Then
    					elementName = reader.Name
    				Else
    					If (reader.NodeType = XmlNodeType.Text) AndAlso (reader.HasValue) Then
    						Select Case elementName
    							Case "version"
    								newVersion = New Version(reader.Value)
    								Exit Select
    							Case "url"
    								downloadUrl = reader.Value
    								Exit Select
    						End Select
    					End If
    				End If
    			End While
    		End If
    	Catch ex As Exception
    	Finally
     
    		If reader IsNot Nothing Then
    			reader.Close()
    		End If
    	End Try
     
    	Dim applicationVersion As Version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version
     
    	If System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed Then
    		Dim cd As System.Deployment.Application.ApplicationDeployment = System.Deployment.Application.ApplicationDeployment.CurrentDeployment
    		Dim publishVersion As Version = cd.CurrentVersion
    		applicationVersion = publishVersion
    	End If
     
    	Mouse.OverrideCursor = Nothing
     
    	If applicationVersion.CompareTo(newVersion) < 0 Then
    		Dim ans As MessageBoxResult = MessageBox.Show("Màj dispo blablabla", "Blablabla", MessageBoxButton.YesNo, MessageBoxImage.Question)
    		If ans = MessageBoxResult.Yes Then
    			System.Diagnostics.Process.Start(downloadUrl)
    		End If
    	Else
    		MessageBox.Show("Soft à jour", "Blablabla", MessageBoxButton.OK, MessageBoxImage.Information)
    	End If
    End Sub
    Voilà donc si vous avez une idée sur l'origine du problème je suis tout ouïe

    D'avance, merci

    p.s. : je ne peux pas tester vos éventuelles solutions de suite, car je travaille de chez moi et je n'ai pas d'écran tactile. Je suis obligé de passer par un collègue au bureau pour faire les tests.

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Faudrait aussi le xaml, pour avoir une meilleure idée.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Par défaut
    Voici le XAML :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <Window x:Class="MenuBO"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:props="clr-namespace:soft.My.Resources"
        Height="594" Width="640" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" FontFamily="DejaVu Sans Mono" Icon="/soft;component/Images/Icons/Logo/soft.ico">
        <Grid>
    		<!-- ... -->
           <StackPanel Height="94" HorizontalAlignment="Left" Name="stck_ud" VerticalAlignment="Top" Width="83">
                <Image Height="48" Source="/soft;component/Images/Icons/Other/update.png" Width="48" />
                <Label Content="{x:Static props:Strings.rechmaj}" Height="23" HorizontalAlignment="Center" VerticalAlignment="Center" />
            </StackPanel>
    		<!-- ... -->
        </Grid>
    </Window>

  4. #4
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Une solution qui vaut ce qu'elle vaut c'est de voir, au début de ta méthode MouseLeftButtonDown si le stylus (le doigt) et sur le StackPanel (C'est du C#, mais facile à traduire):

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (!stck_ud.IsStylusOver)
                    return;

  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 Lenn0x.
    Si tu es sous windows 7 et wpf 4.0(vs 2010) pour activer la "manipulation" tu peux utiliser ceci en xaml:
    exemple d'UIElement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Border Margin="10,5" 
        BorderBrush="DarkGoldenrod" 
        BorderThickness="2" 
            CornerRadius="10" 
        MinHeight="75" 
        IsManipulationEnabled="true">
    ton code 'le stackpnel je suppose):
    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
     
    <Window x:Class="MenuBO"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:props="clr-namespace:soft.My.Resources"
        Height="594" Width="640" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" FontFamily="DejaVu Sans Mono" Icon="/soft;component/Images/Icons/Logo/soft.ico">
        <Grid>
    		<!-- ... -->
           <StackPanel
           IsManipulationEnabled="true"
     
     Height="94" HorizontalAlignment="Left" Name="stck_ud" VerticalAlignment="Top" Width="83">
                <Image Height="48" Source="/soft;component/Images/Icons/Other/update.png" Width="48" />
                <Label Content="{x:Static props:Strings.rechmaj}" Height="23" HorizontalAlignment="Center" VerticalAlignment="Center" />
            </StackPanel>
    		<!-- ... -->
        </Grid>
    </Window>
    Regarde ce blog MSDN:
    http://www.google.fr/url?sa=t&rct=j&...GVkzCzCJDkYN_g
    bon code.......

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Par défaut
    Merci à tous les deux pour vos réponses

    J'ai intégré vos codes, j'attends juste le feedback de mon collègue pour savoir si le problème est résolu.

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/04/2007, 21h53
  2. Probleme avec écran tactile
    Par lovelyseb dans le forum Windows XP
    Réponses: 3
    Dernier message: 16/04/2007, 12h55
  3. Interface écran tactile
    Par Doudd@ dans le forum Périphériques
    Réponses: 3
    Dernier message: 28/11/2006, 19h44
  4. Utiliser un écran tactile
    Par ceidre dans le forum Delphi
    Réponses: 4
    Dernier message: 17/10/2006, 22h04
  5. war3 sur écran tactile ^^
    Par r0d dans le forum PC
    Réponses: 6
    Dernier message: 28/06/2006, 16h39

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