0

次のモデルにバインドされたグリッドビューがあります

    class Item
    {
    string Title;
    string ImagePath
    string ImagePathPressed;
    }

ImagePathとImagePathPressedは、アプリ内の画像へのパスです

マウスがImagePathの値からImagePathPressedの値に移動したときに、グリッド ビュー アイテムの背景を変更するようになりました。

これを達成する方法は?

4

3 に答える 3

0

これらの変数をプロパティとして作成し、クラスにINotifyPropertyChangedも実装するとよいでしょう。そして、gridView のmouseOverイベントで、ImagePathImagePathPressedのそれに変更すると、 ImagePathの変更が反映されます。マウスオーバー イベントで、マウス ポインタが存在する項目を取得できると思います。

于 2013-07-22T05:44:33.260 に答える
0

このリンクをたどって、GridViewItem のスタイルを実装するためのガイドラインを取得します

http://msdn.microsoft.com/en-us/library/windows/apps/jj709915.aspx

クラスメンバーをバインド可能なプロパティとして実装し、上記のリンクのガイドラインとして PointerOver 状態を実装する必要があります。2 つの画像を作成することをお勧めします (1 つは通常状態用、もう 1 つはホバー状態用)。たとえば、次のようになります。

<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="GridViewItem">
            <Border x:Name="OuterContainer">
                <Grid>
                    <Image x:Name="NormalImage" Source="{Binding ImagePath}"/>
                    <Image x:Name="PressImage" Source="{Binding ImagePathPressed}" Opacity="0"/>
                <VisualStateManager.VisualStateGroups>
                    <VisualStateGroup x:Name="CommonStates">
                        <VisualState x:Name="Normal"/>
                        <VisualState x:Name="PointerOver">
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="PressImage"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                            </Storyboard>
                        </VisualState>
                        <VisualState x:Name="Pressed">...
于 2013-07-22T21:36:20.663 に答える