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

Silverlight Discussion :

Création d'une classe de base pour les ChildWindow


Sujet :

Silverlight

  1. #1
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut Création d'une classe de base pour les ChildWindow
    Bonjour à tous,

    Dans mon projet j'ai souvent besoin d'afficher du contenu html. Je sépare donc généralement mon UI en 2, à gauche mon Silverlight et a droite mon html par exemple.

    Le problème survient lorsque j'ai une ChildWindow à afficher, en effet, impossible de superposer du Silverlight sur mon contenu html il faut donc que je décale l'affichage de ma Childwindow sur la gauche afin d’empêcher toute superposition.

    Comme je me suis fait plein de controls childWindows différents (loading, confirmation, error...) je voudrais faire une BaseChildWindow héritant de ChildWindow contenant une méthode me permettant de pousser vers la gauche l'affichage de ma childWindow :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     public void DisplayToTheLeft() {
                this.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                double _left = (Application.Current.Host.Content.ActualWidth * 0.6 / 2) - (this.ActualWidth / 2);
                this.Margin = new Thickness(_left, 0, 0, 0);
            }

    Ensuite je ferai hériter toutes mes autres childWindows de ma BaseChildWindow afin qu'ils puissent tous utiliser la méthode DisplayToTheLeft mais si je fait par exemple :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public partial class LoadingChildWindow : BaseChildWindow
        {
            public LoadingChildWindow(string _loadingMessage)
            {
                InitializeComponent();
                Tb_Loading.Text = _loadingMessage;
            }
        }

    J'ai une erreur :
    Partial declarations of 'Cybergo.Controls.LoadingChildWindow' must not specify different base classes
    Car j'ai une classe partiel générée qui elle descend toujours de ChildWindow

    Où est-ce que je m'y prend mal ?? Le fait de vouloir factoriser ce code est pourtant logique non ?

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Tu dois modifier ton fichier xaml.
    Faut remplacer <ChildWindow .... par ta class

  3. #3
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Hello,

    impossible de superposer du Silverlight sur mon contenu html
    En fait c'est possible en fixant le paramètre WindowLess dans le tag silverlight. Les performances sont moins bonnes qu'en mode normale mais tout dépend de ton application.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <object ...>
      <param name="windowless" value="bool"/>
      ...
    </object>

    http://msdn.microsoft.com/en-us/libr...(v=vs.95).aspx

    pour ton problème de ChildWindow as-tu pensé à modifier le XAML :

    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <my:LoadingChildWindow
      xmlns:my="..."
      ...
    >
    ...
    </my:LoadingCgildWindow

    EDIT : sorry Lutefalco, j'avais pas vu ta réponse
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

  4. #4
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    C'était donc juste ça


    Merci lutecefalco !!

  5. #5
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    Merci Samuel !

    Mais en fait j'utilise le HtmlPlaceHolder de telerik et le windowless doit être impérativement à true.

    Pour l'héritage tout fonctionne bien maintenant merci à vous deux !!

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

Discussions similaires

  1. Création d'une classe menu à instancier pour la création d'un menu
    Par adissa357 dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 02/12/2013, 16h08
  2. Choix d'une adresse Image base pour les DLL
    Par zano972 dans le forum Débuter
    Réponses: 3
    Dernier message: 10/10/2012, 22h23
  3. Réponses: 4
    Dernier message: 29/07/2010, 09h50
  4. Réponses: 0
    Dernier message: 12/08/2008, 17h12
  5. Réponses: 4
    Dernier message: 16/01/2007, 15h27

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