2010-09-21 18 views
0

J'ai un écran de composant qui a 2 états: afficher et masquer. Quand je clique sur un bouton, le composant se déplace sur la scène. Maintenant, lorsque vous cliquez sur le composant, je veux qu'il sorte de la scène. Avec des éléments normaux, cela fonctionne en utilisant l'état d'activation, mais avec les écrans de composants, cela ne semble pas faire quoi que ce soit.Silverlight sketchflow: État de changement d'écran de composant lors du clic

Quelqu'un sait-il comment résoudre ce problème?

XML:

Le composant à l'intérieur de mon écran:

<local:googlemaps x:Name="googlemaps" Margin="97,0,97,-509" d:IsPrototypingComposition="True" Cursor="Hand" VerticalAlignment="Bottom" d:LayoutOverrides="Height" RenderTransformOrigin="0.5,0.5"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="MouseLeftButtonDown"> 
      <pi:ActivateStateAction TargetState="hide"/> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
    <local:googlemaps.RenderTransform> 
     <CompositeTransform/> 
    </local:googlemaps.RenderTransform> 
</local:googlemaps> 

L'écran composante:

<UserControl 
    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" 
    xmlns:pc="http://schemas.microsoft.com/prototyping/2010/controls" 
    mc:Ignorable="d" 
    x:Class="EurekaScreens.googlemaps" 
    d:DesignWidth="606" d:DesignHeight="480" Height="480" Width="606"> 

    <Grid x:Name="LayoutRoot"> 
     <Rectangle Fill="#FF212121" Margin="10,8,0,0" Stroke="Black"/> 
     <Rectangle Fill="#FF212121" Margin="0,0,4,3" Stroke="Black" HorizontalAlignment="Right" Width="602"/> 
     <Image Margin="1,1,5,4" Source="google maps.jpg" Stretch="Fill"/> 
     <pc:SketchRectangleSL HorizontalAlignment="Right" Height="30" Margin="0,0,15,11" Style="{StaticResource Rectangle-Sketch}" VerticalAlignment="Bottom" Width="87"/> 
     <TextBlock HorizontalAlignment="Right" Margin="0,0,36,13" Style="{StaticResource SubtitleLeft-Sketch}" TextWrapping="Wrap" Text="CLOSE" VerticalAlignment="Bottom" FontSize="18.667" Height="23" Width="44"/> 
    </Grid> 
</UserControl> 

Répondre

0

Pouvez-vous poster le XAML pour l'écran des composants, et l'écran contenant? Est-ce que cela fonctionne de cliquer n'importe où sur le composant? Je pense probablement qu'il n'a pas d'arrière-plan, donc ne reçoit pas les événements de clic. Vous pourriez essayer d'assigner un arrière-plan clair.

Sinon, postez le xaml et je verrai si je peux vous aider.

Je ne sais pas exactement pourquoi, mais pour une raison quelconque, il semble que l'événement de la souris n'atteigne pas le comportement. Lorsque j'emballe l'écran du composant dans une grille et que je mets le comportement sur une grille, cela semble fonctionner correctement:

<Grid HorizontalAlignment="Right" Margin="0,-2,-625,2" Width="606" Background="#00000000"> 
      <i:Interaction.Triggers> 
       <i:EventTrigger EventName="MouseLeftButtonUp"> 
        <pi:ActivateStateAction TargetState="hide"/> 
       </i:EventTrigger> 
      </i:Interaction.Triggers> 
      <local:Screen_2 x:Name="screen_2" Height="480" Width="606" d:IsPrototypingComposition="True" RenderTransformOrigin="0.5,0.5"> 
       <local:Screen_2.RenderTransform> 
        <CompositeTransform/> 
       </local:Screen_2.RenderTransform> 
      </local:Screen_2> 
     </Grid> 
+0

J'ai mis à jour ma question avec le xml. – Pickels