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 :

Usercontrol dans usercontrol - accessibilité membre [Débutant]


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 285
    Par défaut Usercontrol dans usercontrol - accessibilité membre
    Bonjour,
    Je passe progressivement mes projets winforms en wpf et constate (entre autre) que les boites de dialogue ColorDialog et FontDialog n’existent plus.
    Comme je souhaite tout passer en wpf (visual studio), j’ai trouvé ceci (http://www.codeproject.com/Articles/...ker-with-Color) mais j’ai un problème lors de la conversion de CS en VB.

    Je n’ai pas d’erreurs au niveau des classes lorsque je reconstruis le projet jusqu’au Usercontrol ColorPicker. Les problèmes apparaissent lors de la construction du 2ème Usercontrol ColorFontChooser.
    Dans le xaml de ColorFontChooser, j’ai le message « Le membre ColorChanged n’est pas reconnu ou n’est pas accessible » et les messages d’erreur suivants dans ColorFontChooser.g.i.vb « le type ColorFont.ColorFont.ColorPicker non défini » sur les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Friend WithEvents ColorPicker As ColorFont.ColorFont.ColorPicker
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ColorPicker = CType(target,ColorFont.ColorFont.ColorPicker)
    Dans les 2 cas, je supprime le 1er ColorFont, ferme toutes les fenêtres, nettoie puis regénère le projet mais les erreurs reviennent à chaque fois.

    Ça fait plusieurs jours que je parcours le net sans trouver de solutions. Auriez-vous une idée ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Par défaut
    Bonjour,

    ColorFontChooser.g.i.vb est un fichier généré, il aurait été préférable de nous donner le code de base de tes classes.
    Celà dit, plutôt qu'un problème de conversion C#->VB, je pencherais plutôt pour un problème de Namespace entre les classes, ou alors, au vu de ton message d'erreur es-tu sur d'avoir ColorChanged et ColorChangedEvent en public dans le UserControl ColorPicker ?
    Je ne fais pas de VB mais je ne crois que ça soit lui le coupable

    Bonne continuation.

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 285
    Par défaut
    D'abord, merci de ta réponse

    Ci-dessous la class ColorPicker :

    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
    62
    63
    64
    65
    66
    67
     
    Imports System.Windows
    Imports System.Windows.Controls
    Imports System.Windows.Media
     
    Namespace ColorFont
     
        Partial Public Class ColorPicker
     
            Inherits UserControl
     
            Private viewModel As ColorPickerViewModel
            Public Shared ReadOnly ColorChangedEvent As RoutedEvent = EventManager.RegisterRoutedEvent("ColorChanged", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(ColorPicker))
            Public Shared ReadOnly SelectedColorProperty As DependencyProperty = DependencyProperty.Register("SelectedColor", GetType(FontColor), GetType(ColorPicker), New UIPropertyMetadata(Nothing))
     
            Public Sub New()
                InitializeComponent()
                Me.viewModel = New ColorPickerViewModel()
                Me.DataContext = Me.viewModel
            End Sub
     
            Public Custom Event ColorChanged As RoutedEventHandler
                AddHandler(ByVal value As RoutedEventHandler)
                    Me.AddHandler(ColorChangedEvent, value)
                End AddHandler
     
                RemoveHandler(ByVal value As RoutedEventHandler)
                    Me.RemoveHandler(ColorChangedEvent, value)
                End RemoveHandler
     
                RaiseEvent(ByVal sender As Object, ByVal e As RoutedEventArgs)
                    Me.RaiseEvent(e)
                End RaiseEvent
            End Event
     
            Private Sub RaiseColorChangedEvent()
                Dim newEventArgs As New RoutedEventArgs(ColorPicker.ColorChangedEvent)
                MyBase.RaiseEvent(newEventArgs)
            End Sub
     
            Public Property SelectedColor() As FontColor
                Get
                    Dim fc As FontColor = DirectCast(Me.GetValue(SelectedColorProperty), FontColor)
                    If fc Is Nothing Then
                        fc = AvailableColors.GetFontColor("Black")
                    End If
                    Return fc
                End Get
     
                Set(value As FontColor)
                    Me.viewModel.SelectedFontColor = value
                    SetValue(SelectedColorProperty, value)
                End Set
            End Property
     
            Private Sub superCombo_DropDownClosed(sender As Object, e As EventArgs)
                Me.SetValue(SelectedColorProperty, Me.viewModel.SelectedFontColor)
                Me.RaiseColorChangedEvent()
            End Sub
     
            Private Sub superCombo_Loaded(sender As Object, e As RoutedEventArgs)
                Me.SetValue(SelectedColorProperty, Me.viewModel.SelectedFontColor)
            End Sub
     
        End Class
     
    End Namespace
    Et la class ColorFontChooser :

    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
     
    Imports System.Windows
    Imports System.Windows.Controls
    Imports System.Windows.Media
     
    Namespace ColorFont
        Partial Public Class ColorFontChooser
     
            Inherits UserControl
     
            Public Sub New()
                InitializeComponent()
                Me.txtSampleText.IsReadOnly = True
            End Sub
     
            Public ReadOnly Property SelectedFont() As FontInfo
                Get
                    Return New FontInfo(Me.txtSampleText.FontFamily, Me.txtSampleText.FontSize, Me.txtSampleText.FontStyle, Me.txtSampleText.FontStretch, Me.txtSampleText.FontWeight, Me.ColorPicker.SelectedColor.Brush)
                End Get
            End Property
     
            Private Sub ColorPicker_ColorChanged(sender As Object, e As RoutedEventArgs)
                Me.txtSampleText.Foreground = Me.ColorPicker.SelectedColor.Brush
            End Sub
        End Class
     
    End Namespace
    J’ai rajouté RaiseEvent dans l’évènement ColorChanged de la class ColorPicker en partant des explications MSDN. La seule chose que je n’arrive pas à adapter par rapport à MSDN est le Protected Overrides Sub (peut être que le pbroblème vient de là).

    Tu peux voir que ColorChanged et ColorChangedEvent sont en public dans le UserControl ColorPicker.

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 285
    Par défaut
    Désolé pour la réponse franchement tardive mais le problème était bien situé au niveau du namespace. Merci à Kyroon.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C# 1.1] - UserControl dans Internet Explorer
    Par Erakis dans le forum Windows Forms
    Réponses: 1
    Dernier message: 01/08/2006, 21h10
  2. [C#] Usercontrol dans usercontrol -> pb compilation
    Par annalady dans le forum Windows Forms
    Réponses: 1
    Dernier message: 11/04/2006, 15h38
  3. [VB.NET]Afficher plusieurs UserControls dans un Panel
    Par Golzinne dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/02/2006, 21h29
  4. [C#][.Net 2.0]Détecter appui touche direction dans UserControl
    Par Harry_polin dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/02/2006, 20h46
  5. [VB.NET] [1.1] Datasource datagrid dans userControl
    Par Golzinne dans le forum Windows Forms
    Réponses: 2
    Dernier message: 15/12/2005, 20h35

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