4

Windows8アプリケーションにマウスオーバー効果を追加しようとしています。具体的には、GridViewにバインドされたDataTemplatesに追加しようとしています。ただし、現在、何も起きていません。Microsoftのチュートリアルに従おうとしましたが、それらのほとんどは古くなっているか、XAMLのバージョンが異なります。

私のコードは次のようになります。

<DataTemplate x:Key="GameTileTemplate">
    <Grid x:Name="grid" Width="173" Height="173" RenderTransformOrigin="0.5,0.5" >
        <Grid.Clip>
            <RectangleGeometry Rect="0,0,173,173"/>
        </Grid.Clip>
        <Image Grid.RowSpan="3" Stretch="UniformToFill"/>
        <Grid x:Name="DataPanel" Margin="-173,0,0,0" Grid.RowSpan="3" RenderTransformOrigin="0.5,0.5" Width="346" HorizontalAlignment="Left" VerticalAlignment="Top" Height="173">
            <!--There is more here-->
        </Grid>
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="CommonStateGroup">
                <VisualState x:Name="Normal" />
                <VisualState x:Name="PointerEntered">
                    <Storyboard>
                        <DoubleAnimation From="1" To="0" Duration="00:00:02" 
                             Storyboard.TargetName="DataPanel" 
                             Storyboard.TargetProperty="Opacity">
                        </DoubleAnimation>
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
    </Grid>
</DataTemplate>

DataPanelの不透明度は変わりません。どこかに他のコードが必要ですか?MicrosoftチュートリアルはControlTemplate用でしたが、私のテンプレートはDataTemplateであるため、これによりエラーが発生しますか?

4

2 に答える 2

4

質問で提供したXamlは、それ自体では機能しません。視覚的な状態を定義するだけでは不十分です。VisualStateManager.GoToStateを呼び出すための何らかのコードも必要です。

特定の場合の解決策は、に視覚的な状態を追加するのではなく、 GridViewItemDataTemplateのカスタムテンプレートを作成することです。一般に、GridView内の要素を、共通のポインター、選択、ドラッグ、およびドロップの状態で装飾する役割を果たします。GridViewItem

于 2012-10-15T21:41:02.100 に答える
4

それが機能するUserControlbaliseを追加します(理由はわかりません)

 <DataTemplate x:Key="GameTileTemplate">
<UserControl>
<Grid x:Name="grid" Width="173" Height="173" RenderTransformOrigin="0.5,0.5" >
        <Grid.Clip>
....

...
 </VisualStateManager.VisualStateGroups>
    </Grid>
</UserControl>
</DataTemplate>
于 2015-09-27T09:18:40.987 に答える