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 :

[Surface] Appeler mon Canvas intégré à l'ItemPanelTemplate dans mon code


Sujet :

Windows Presentation Foundation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 13
    Points
    13
    Par défaut [Surface] Appeler mon Canvas intégré à l'ItemPanelTemplate dans mon code
    Bonjour à tous,

    Mon problème étant que je n'arrive pas à appeler mon Canvas à partir de mon xaml.cs

    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
    <s:ScatterView x:Name="ScatterView" >
                <s:ScatterViewItem x:Name="origin" Width="500" Height="500" Center="700,540" Orientation="0" CanMove="False" CanRotate="True" HorizontalAlignment="Center" VerticalAlignment="Center">
     
                    <s:ScatterViewItem.Background>
                        <ImageBrush ImageSource="{Binding ImagePlan}" Stretch="Fill"/>
                    </s:ScatterViewItem.Background>
                    <ListBox x:Name="ListBoxPlan"  SelectionChanged="ListBoxPlan_SelectionChanged" ItemContainerStyle="{StaticResource MyListBoxItemContainerStyle}" Background="{x:Null}" Width="500" Height="500" ItemsSource="{Binding Media}" SelectedItem="{Binding SelectedMedia}" Margin="0">
                        <ListBox.ItemsPanel >
                            <ItemsPanelTemplate >
                                <Canvas x:Name="CanvasPlan" />
                            </ItemsPanelTemplate>
                        </ListBox.ItemsPanel>
                    </ListBox>
                </s:ScatterViewItem>
     
                <s:ScatterViewItem x:Name="destination"  ContainerStaysActive="True" Center="150,150" Orientation="0" Visibility="{Binding VisibilityScatter}" Width="{Binding WidthScatter}" Height="{Binding HeightScatter}">
                    <MediaElement Volume="0" Source="{Binding SelectedMedia.Chemin}"  Stretch="Fill"/>
                </s:ScatterViewItem>
     
            </s:ScatterView>

    j'aimerai pouvoir appeler le "CanvasPlan" dans mon xaml.cs.

  2. #2
    Membre confirmé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Points : 610
    Points
    610
    Par défaut
    Salut,

    J'avais trouvé une méthode sur internet qui vise à rechercher l'élément

    Code c# : 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
    public T FindVisualChild<T>(DependencyObject obj) where T : DependencyObject
    {           
    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
    {
    	var item = VisualTreeHelper.GetChild(obj, i);
     
    	if (item != null && item is T)
    		return (item as T);
     
    	var item2 = FindVisualChild<T>(item);
     
    	if (item2 != null)
    		return item2;
    }
     
    return null;
    }

    A appeler avec

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    Canvas canvas = FindVisualChild<Canvas>(ListBoxPlan);

    Bon courage

    @+

    Edit :

    Autre méthode sinon, tu t'abonnes à l'event Loaded et tu le récupère dedans.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <Canvas x:Name="CanvasPlan" 
    Loaded="CanvasPlan_Loaded"/>

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private Canvas _c;
    private void CanvasPlan_Loaded(object sender, RoutedEventArgs e)
    {
       _c = sender as Canvas;
    }

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 13
    Points
    13
    Par défaut
    Je te remercie encore une fois Koyot3

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

Discussions similaires

  1. Héberger une vidéo sur mon serveur et la lire dans mon site
    Par djerbainfo.net dans le forum Débuter
    Réponses: 4
    Dernier message: 07/01/2013, 15h53
  2. Réponses: 0
    Dernier message: 02/07/2012, 18h06
  3. appel d'une vue pl/sql dans du code java
    Par coolcoolcool dans le forum Général Java
    Réponses: 5
    Dernier message: 08/09/2010, 13h49
  4. [SmartGWT] mon float perd la tete dans mon ListGrid
    Par touille dans le forum GWT et Vaadin
    Réponses: 5
    Dernier message: 04/06/2010, 11h29
  5. Center mon site en hauteur ! problème dans mon html ?
    Par michmuch dans le forum Mise en page CSS
    Réponses: 14
    Dernier message: 21/04/2008, 14h25

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