2

アプリのすべての「GridSplitter」に影響を与えて、マウスが上にあるときにカーソルの外観を変更するグローバル スタイルを作成したいと思います。

このコードは、垂直 GridSplitter で機能します。

<Style TargetType="GridSplitter">
  <Setter Property="Cursor" Value="SizeWe"></Setter>
</Style>

しかし、その向きを検出し、必要に応じて値を「SizeNs」に設定する方法がわかりません。すべての GridSplitter コードを変更する必要はありません。リソース キーを設定しなくても、すべての Gridsplitter に適用できる 1 つのスタイルが必要です。

何か案が ?

XamlParseException を持っているすべての人: 行番号 '15' および行位置 '9'。

カーソル名の構文が適切であることを確認してください。

4

1 に答える 1

3

ResizeDirectionコントロール テンプレート トリガーでプロパティを使用し、適切なカーソルを設定できます。

<Style TargetType="GridSplitter">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="GridSplitter">                        

                <Rectangle Fill="{TemplateBinding Background}"></Rectangle>

                <ControlTemplate.Triggers>
                    <Trigger Property="ResizeDirection" Value="Columns">
                        <Setter Property="Cursor" Value="SizeNS"></Setter>                                
                    </Trigger>
                    <Trigger Property="ResizeDirection" Value="Rows">
                        <Setter Property="Cursor" Value="SizeWE"></Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
于 2013-09-05T14:04:14.753 に答える