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 :

[Grid] accès aux éléments sous jascents


Sujet :

Windows Presentation Foundation

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut [Grid] accès aux éléments sous jascents
    bonjour

    une question que je me suis toujours posé ...
    peut on synchroniser (de façon simple) des éléments sur une grid qui se trouve être un parent (mais lointain) par exemple
    si j'ai ce code
    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
    <Grid x:Name="LayoutRoot">
    	<Grid HorizontalAlignment="Left" Height="259.104" Margin="85.755,57.588,0,0" VerticalAlignment="Top" Width="353.433" Background="#FFE1E1FF">
    		<Grid.ColumnDefinitions>
    			<ColumnDefinition Width="119*"/>
    			<ColumnDefinition Width="18*"/>
    			<ColumnDefinition Width="216*"/>
    		</Grid.ColumnDefinitions>
    		<StackPanel Orientation="Vertical" Grid.ColumnSpan="3" >
    			<DockPanel Background="red">
    				<TextBlock Text="alpha" DockPanel.Dock="Left" />
    				<TextBox Text="" />
    			</DockPanel>
    			<DockPanel Background="red">
    				<TextBlock Text="alpha" DockPanel.Dock="Left" />
    				<TextBox Text="" />
    			</DockPanel>
    		</StackPanel>
    	</Grid>
    </Grid>

    j'aimerais que mes
    • textbloxk soient dans la colonne 0
    • textbox soient dans la colonne 2

    ainsi changeant les tailles des colonnes j'aurais un design sympa

    évidement dans le cas qui m'occupe j'utilise des datatemplates par exemple
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <DataTemplate DataType="{x:Type local:UCText}">
            <DockPanel Margin="2">
                <TextBlock Text="{Binding Name}"
                           DockPanel.Dock="Left"
                           VerticalAlignment="Center"
                           Width="100" />
                <TextBox Text="{Binding Text, UpdateSourceTrigger=PropertyChanged}" />
            </DockPanel>
        </DataTemplate>

    c'est juste pour synchroniser les textes (textblock) des datatemplates entre eux

    merci
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  2. #2
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2014
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 196
    Points : 331
    Points
    331
    Par défaut
    Je ne suis pas sur d'avoir compris ton problème mais si tu cherche à partager des tailles de colonnes ( que toute les colonnes qui contiennent des textbox fasse la même largeur) il faut que tu regarde du coté de SharedSizeGroup et IsSharedSizeScope , un exemple ici http://xamltag.wordpress.com/2012/03...d-size-groups/ ou ici http://stackoverflow.com/questions/4...e-wpf-controls

  3. #3
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2014
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 196
    Points : 331
    Points
    331
    Par défaut
    Bon voila un exemple avec un ItemsControl qui affiche des DataTemplate qui contiennent des Grid dont les tailles des colonnes sont partagées :

    Le XAML :

    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
    <Window x:Class="WpfApplication2.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            x:Name="mainWindow"
            Title="MainWindow" Height="350" Width="525">
        <Grid Grid.IsSharedSizeScope="True" Background="AliceBlue" HorizontalAlignment="Stretch">
            <ItemsControl ItemsSource="{Binding ElementName=mainWindow,Path=ItemInfos}">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition SharedSizeGroup="InfoColumn" Width="Auto"></ColumnDefinition>
                                <ColumnDefinition SharedSizeGroup="InfoDescription"  Width="*"></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <TextBlock Text="{Binding Path=Info}" Grid.Column="0" Margin="2"></TextBlock>
                            <TextBlock Text="{Binding Path=Description}" Grid.Column="1"  Margin="2"></TextBlock>
                        </Grid>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </Grid>
    </Window>
    Le Code-Behind :
    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
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
     
    namespace WpfApplication2
    {
        /// <summary>
        /// Logique d'interaction pour MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public ObservableCollection<ItemInfo> ItemInfos { get; private set; }
            public MainWindow()
            {
     
                this.ItemInfos = new ObservableCollection<ItemInfo>();
                for (int i = 0; i < 5; i++)
                { this.ItemInfos.Add(new ItemInfo() { Description = "Detail de l'info "+(i+1), Info = "Info courte "+(i+1) }); }
     
                for (int i = 5; i < 10; i++)
                { this.ItemInfos.Add(new ItemInfo() { Description = "Detail de l'info " + (i + 1)+" avec plus de texte", Info = "Info " + (i + 1) }); }
                InitializeComponent();
            }
        }
        public class ItemInfo
        {
            public String Description {get;set;}
            public String Info { get; set; }
        }
    }

Discussions similaires

  1. Accès aux éléments de différentes frames
    Par metalpetsFR dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 16/09/2009, 06h36
  2. Réponses: 5
    Dernier message: 05/03/2008, 11h03
  3. accés aux BD sous ADO
    Par loubardi dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/06/2006, 10h32
  4. Droits d'acces aux repertoires sous win xp
    Par jpelaho dans le forum Windows XP
    Réponses: 7
    Dernier message: 07/06/2006, 10h09
  5. [Rico] Accès aux éléments de la page de manière bizarre
    Par dodik dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 22/02/2006, 17h35

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