ユーザーがコントロールの上にマウスを置いたときにSilverlight4.0にポップアップを実装するための要件が1つあります。そして、ポップアップはコントロールからスライドアウトする必要があります。ポップアップを表示できます。しかし、それにスライド効果を与えることはできません。私を助けてください。
前もって感謝します。
ユーザーがコントロールの上にマウスを置いたときにSilverlight4.0にポップアップを実装するための要件が1つあります。そして、ポップアップはコントロールからスライドアウトする必要があります。ポップアップを表示できます。しかし、それにスライド効果を与えることはできません。私を助けてください。
前もって感謝します。
スライドタイプの「ポップアップ」にドロップシャドウ付きの長方形を使用してきました。モーダル タイプが必要な場合は、背景を無効にすることができます。
これは純粋な xaml を使用していますが、ストーリーボードは分離コードから呼び出すことができます。
インタラクティブ性への言及
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" x:Class="SomeProject"
私はナビゲーション ページを使用しているので、スライド インとスライド アウトのトランジションのコードは次のようになります。
<navigation:Page.Resources>
<Storyboard x:Name="Storyboard_Enter">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="rectangle">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:2" Value="520"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Name="Storyboard_GoBack">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="rectangle">
<SplineDoubleKeyFrame KeyTime="0" Value="520"/>
<SplineDoubleKeyFrame KeyTime="0:0:2" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</navigation:Page.Resources>
レイアウトルート
<Grid x:Name="LayoutRoot">
<Button x:Name="btnEnter" Content="Enter" HorizontalAlignment="Left" Height="48" Margin="96,88,0,0" VerticalAlignment="Top" Width="144">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter" SourceName="btnEnter">
<ei:ControlStoryboardAction Storyboard="{StaticResource Storyboard_Enter}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Rectangle x:Name="rectangle" Fill="#FF393939" Margin="-376,232,0,72" Stroke="Black" RadiusY="25" RadiusX="21" HorizontalAlignment="Left" Width="358" RenderTransformOrigin="0.5,0.5">
<Rectangle.RenderTransform>
<CompositeTransform/>
</Rectangle.RenderTransform>
<Rectangle.Effect>
<DropShadowEffect BlurRadius="15" Color="#FFBABABA"/>
</Rectangle.Effect>
</Rectangle>
<Button x:Name="btnGoBack" Content="Exit" Height="48" Margin="296,88,192,0" VerticalAlignment="Top">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter" SourceName="btnGoBack">
<ei:ControlStoryboardAction Storyboard="{StaticResource Storyboard_GoBack}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</Grid>
これは非常に大まかな例ですが、開始する必要があります。
メインキャンバスの一番端にある「ポップアップ」コンテナが見えないようになっています。
ストーリーボードを作成してスライドインし、スライドバックします。
ストーリーボードは、xaml ベースのトリガーを使用して、または分離コードから呼び出すことができます。