none
UserControl + Dimension + ElementFlow RRS feed

  • Question

  • Bonjour,

    je développe actuellement une petite application qui nécessite un carousel. Pour ce faire, j'ai choisi d'utiliser le composant ElementFlow de FluidKit.

    Après avoir inclu l'user control dans mon projet, j'essaie de le lancer pour deja avoir une idée de l'aperçu graphique. J'obtiens:

    http://img4.hostingpics.net/pics/737534VIVAFauneLiveStock.png

     

    Comme vous pouvez le constater, l'usercontrol ne se redimensionne pas comme souhaité.

    Voici mes codes XAML:

    [MainWindow.xaml]

    <Window x:Class="VIVAFauneLiveStock.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:carousel="clr-namespace:Carousel;assembly=Carousel"
        Title="VIVAFaune LiveStock" Height="600" Width="700" WindowState="Maximized">
      <Grid>
        <Grid.RowDefinitions>
          <RowDefinition Height="25" />
          <RowDefinition Height="240" />
          <RowDefinition />
          <RowDefinition Height="25" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="200" />
          <ColumnDefinition />
        </Grid.ColumnDefinitions>
        
        <Menu Grid.ColumnSpan="2" Grid.Row="0">
          <MenuItem Header="Fichier">
            <MenuItem Header="Quitter" InputGestureText="Alt+F4" />
          </MenuItem>
          <MenuItem Header="Edition">
            <MenuItem Header="Nouveau" InputGestureText="Alt+F4">
              <MenuItem Header="Contact" InputGestureText="Ctrl+n+c" />
              <Separator />
              <MenuItem Header="Animal" InputGestureText="Ctrl+n+a" />
              <MenuItem Header="Matériel" InputGestureText="Ctrl+n+m" />
            </MenuItem>
          </MenuItem>
          <MenuItem Header="Outils">
            <MenuItem Header="Configuration" InputGestureText="Alt+c" />
          </MenuItem>
          <MenuItem Header="Aide">
            <MenuItem Header="Vérifier les mises à jour" InputGestureText="Maj+u+p" />
            <Separator />
            <MenuItem Header="A propos" InputGestureText="Alt+F4" />
          </MenuItem>
        </Menu>
        <carousel:UserControl1 Grid.Column="1" Grid.Row="1" DataContext="{Binding}" Width="Auto" Height="Auto" />
      </Grid>
    </Window>
    
    <br/>
    
    [UserControl1.Xaml]
    
    <pre lang="x-xml"><UserControl x:Class="Carousel.UserControl1"
           xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
           xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
           xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
           xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
           xmlns:Controls="clr-namespace:FluidKit.Controls;assembly=FluidKit"
           mc:Ignorable="d"
           Width="Auto" Height="Auto">
      <Grid>
        <Grid.RowDefinitions>
          <RowDefinition Height="25" />
          <RowDefinition />
          <RowDefinition Height="25" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="160" />
          <ColumnDefinition Width="160" />
          <ColumnDefinition Width="160" />
        </Grid.ColumnDefinitions>
        <WrapPanel Grid.Column="0" Grid.Row="0" Orientation="Horizontal">
          <Button Content="" Width="16" Height="25" x:Name="BtnAjouter" />
          <Button Content="S" Width="16" Height="25" x:Name="btnSauvergarder" />
          <Button Content="S" Width="16" Height="25" x:Name="btnSupprimer" />
          <Button Content="P" Width="16" Height="25" x:Name="btnImprimer" />
          <Separator />
          <ComboBox Name="cmbBoxAfficher">
            <ComboBoxItem Content="Contacts" />
            <Separator />
            <ComboBoxItem Content="Animaux" />
            <ComboBoxItem Content="Matériaux" />
          </ComboBox>
        </WrapPanel>
        <ComboBox Grid.Column="1" Grid.Row="0" Name="cmbBoxFiltre" />
        <TextBox Grid.Column="2" Grid.Row="0" Name="txtRecherche" Text="Recherche ..." />
        
        
        <!--Debut Carousel-->
        <Controls:ElementFlow x:Name="_elementFlow"
                   Grid.Row="1"
                   Grid.ColumnSpan="3"
                   TiltAngle="{Binding Value, ElementName=_tiltAngleSlider}"
                   ItemGap="{Binding Value, ElementName=_itemGapSlider}"
                   FrontItemGap="{Binding Value, ElementName=_frontItemGapSlider}"
                   PopoutDistance="{Binding Value, ElementName=_popoutDistanceSlider}"
                   ElementWidth="300"
                   ElementHeight="200"
                   SelectedIndex="3">
          <Controls:ElementFlow.Layout>
            <Controls:CoverFlow />
          </Controls:ElementFlow.Layout>
          <Controls:ElementFlow.Background>
            <LinearGradientBrush EndPoint="0.5,1"
                       StartPoint="0.5,0">
              <GradientStop Color="#000000" />
              <GradientStop Color="#FF7A7A7A"
                     Offset="0.5" />
              <GradientStop Color="#FF1A1A1A"
                     Offset="1" />
            </LinearGradientBrush>
          </Controls:ElementFlow.Background>
          <Controls:ElementFlow.Camera>
            <PerspectiveCamera FieldOfView="60"
                      Position="0,3,6"
                      LookDirection="0,-3,-6" />
          </Controls:ElementFlow.Camera>
        </Controls:ElementFlow>
        <!--Fin Carousel-->
        
        
        <Slider x:Name="Slider" Grid.Row="2" Grid.ColumnSpan="3" />
      </Grid>
    </UserControl>
    
    

    <br/>
    
    Voilà donc pour mon premier problème, la dimension.
    
    <br/>
    
    Le second concerne l'élément ElementFlow en lui même (le carousel). Après quelques recherches "vaine" de l'utilisation de ce composant fluidkit,
    
    J'ai trouvé ceci: <span style="font-family:'Times New Roman'; white-space:normal"><a href="http://www.sebastien-alves.fr/index.php/2010/08/20/xi-%E2%80%93-un-media-browser-simple-en-wpf-fluidkit-elementflow-et-wpfbookcontrol/">http://www.sebastien-alves.fr/index.php/2010/08/20/xi-%E2%80%93-un-media-browser-simple-en-wpf-fluidkit-elementflow-et-wpfbookcontrol/</a></span>
    
    <br/>
    
    Le soucis est que ce code est quand même relativement important et encore un peu complexe pour moi. Ce qui fait que je ne sais
    
    pas trop comment m'y prendre pour binder des images (ainsi que le nom associé) à l'élément tout en lui donnant
    
    ces fonctionnalité de bases de carousel. De plus, il doit y avoir une condition qui dit que si il n'y aucun élément, il
    
    y a un bouton "créer" qui ouvrira le formulaire approproprié. En effet, le carousel est bindé à différentes sources d'éléments
    
    <br/>
    
    Si l'un de vous pourrais m'aidez à corriger ceci, c'est avec grand plaisir !
    
    Meilleures salutations
    

    mercredi 16 mars 2011 12:31