0

私が達成したいのは、マウスがメイン ウィンドウの上に置かれているときに、すべての UI 要素がフリーズする必要があることです。これは、Window.IsEnabled を false に設定することで実行できると思います。マウスがメイン ウィンドウを離れた後、すべてが通常に戻ります。

スタイル ターゲット ウィンドウでプロパティ トリガーを定義しようとしましたが、機能しません。コードはlolowのように、

<Style.Triggers>
    <Trigger Property="Window.IsMouseOver" Value="True">
        <Setter Property="Window.IsEnabled" Value="false"/>
    </Trigger>
</Style.Triggers>

実際、この種のプロパティ トリガーはグリッドでも機能しません。誰でも説明できますか?

また、Window で MouseEnter イベントと MouseLeave イベントを明示的に使用し、ハンドラで無効化/有効化ロジックを設定しようとしました。これは機能します。XAMLでこれを行うことは可能ですか?

4

1 に答える 1

0

正直に言うと、コードが機能しない理由はわかりません。何らかの競合が発生していると思いますが、理由はわかりません

とにかく、eventsetter を使用して XAML で実行できます。それほどエレガントではありませんが、機能します

<Window.Triggers>
    <EventTrigger RoutedEvent="Window.MouseEnter">
        <BeginStoryboard>
            <Storyboard Name="sb">
                <BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsEnabled" >
                    <BooleanKeyFrameCollection>
                        <DiscreteBooleanKeyFrame Value="False" KeyTime="0:0:0:1"></DiscreteBooleanKeyFrame>
                    </BooleanKeyFrameCollection>
                </BooleanAnimationUsingKeyFrames>
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</Window.Triggers> 
于 2011-11-01T18:51:51.950 に答える