locked
Effet pression sur Usercontrol RRS feed

  • Question

  • Bonjour,

    Je commence à utiliser Blend. J'ai fait un UserControl (Grid à 2 colonnes, 1 image, 1 Textbloc) pour l'utiliser comme item dans une listBox.

    <UserControl x:Class="MonAppli.ItemFigure"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
          x:Name="ItemFigureControl"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
        d:DesignHeight="134" d:DesignWidth="480">
       
        <Grid x:Name="LayoutRoot">
            <Border>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <Image Grid.Column="0" Grid.RowSpan="2"
                                                 Source="{Binding Icon}"
                                                 Height="70"
                                                 Width="70"
                                                       Margin="6" />
                    <StackPanel Grid.Row="0" Grid.Column="1" 
                                                 Orientation="Horizontal"
                                                 VerticalAlignment="Center">
                        <TextBlock Text="{Binding Name}" Foreground="Black" Style="{StaticResource PhoneTextTitle2Style}" />
                    </StackPanel>
                </Grid>
            </Border>
        </Grid>
    </UserControl>

    Je cherche à faire un effet de pression (type comme lorsque l'on Tap sur un email)

    Connaissez vous un bon tutoriel (pas trop compliqué) pour ça ?

    mardi 14 février 2012 09:06

Réponses

  • Il faut utiliser le tilteffect du silverlight toolkit :

    Rajoute simplement :

    xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
        toolkit:TiltEffect.IsTiltEnabled="True"

    dans le header de ta page xaml et c tout (ainsi qu'une reference vers la lib silverlight toolkit (microsoft.phone.controls.toolkit)

    http://silverlight.codeplex.com/


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    mardi 14 février 2012 09:08
  • il faut que tu ajoutes le code à la seconde page aussi. Cela ne fonctionne que pour les boutons, les listboxitem, radiobutton, checkbox. Dans ton cas tu utilises  ScrollViewer+ItemsControl, remplace ca par une listbox

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    mardi 14 février 2012 09:43

Toutes les réponses

  • Il faut utiliser le tilteffect du silverlight toolkit :

    Rajoute simplement :

    xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
        toolkit:TiltEffect.IsTiltEnabled="True"

    dans le header de ta page xaml et c tout (ainsi qu'une reference vers la lib silverlight toolkit (microsoft.phone.controls.toolkit)

    http://silverlight.codeplex.com/


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    mardi 14 février 2012 09:08
  • Merci, c'est bluffant ! Par contre ça fonctionne sur ma Mainpage.xaml où j'ai une listebox en dur :

    <!--Élément un de panorama-->
                <controls:PanoramaItem Header="Principal">
                    <Grid Loaded="Grid_Loaded">
                        <ListBox xmlns:sys="clr-namespace:System;assembly=mscorlib"
                                    FontSize="40" Height="538" Margin="70,50,0,0" >
                            <ListBox.Items>
                                <sys:String>Nouveau</sys:String>
                                <sys:String>Tutorial</sys:String>
                                <sys:String>A propos de</sys:String>
                                <sys:String>Options</sys:String>
                            </ListBox.Items>
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Horizontal">
                                        <Image Source="/MonAppli;component/icons/playb.png" Width="48" Height="48" />
                                        <TextBlock Text="{Binding}" Padding="15"
                                                   Foreground="Black"/>
                                    </StackPanel>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>

    Mais sur ma seconde page PivotPage.xaml, ça passe pas :

    <!--Élément un de tableau croisé dynamique-->
                <controls:PivotItem Header="Surfaces">
                    <Grid Grid.Row="1" Margin="12,0,12,0">
     
                        <ScrollViewer>
                            <ItemsControl x:Name="surfaces">
                                <ItemsControl.ItemTemplate>
                                    <DataTemplate >
                                        <local:ItemFigure Click="SurfaceFigure_Click"  />
                                    </DataTemplate>
                                </ItemsControl.ItemTemplate>
                            </ItemsControl>
                        </ScrollViewer>
                    </Grid>

    C'est forcement du à l'utilisation d'un usercontrol ! non ? J'ai essayé de coller le "TiltEffect" dans le usercontrol ItemFigure.xaml mais sans plus


    mardi 14 février 2012 09:20
  • il faut que tu ajoutes le code à la seconde page aussi. Cela ne fonctionne que pour les boutons, les listboxitem, radiobutton, checkbox. Dans ton cas tu utilises  ScrollViewer+ItemsControl, remplace ca par une listbox

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    mardi 14 février 2012 09:43