1

私は次のようにボタンスタイル+テンプレートを持っています:

<Style x:Key="ButtonStyle" TargetType="RepeatButton">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="RepeatButton">
                <Border Background="{DynamicResource {x:Static SystemColors.ControlColor}}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">            
                    <Path Data="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}">
                        <Path.Fill>
                            <SolidColorBrush x:Name="PathBrush" Color="{x:Static SystemColors.ControlDarkColor}" />
                        </Path.Fill>
                    </Path>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

ボタンは次のように使用されます。

<RepeatButton Style="{StaticResource ButtonStyle}" Content="M 0 4 L 8 4 L 4 0 Z" />

ただし、ボタンを押すことができるのは、ボタン全体ではなく、マウスがパス上にある場合のみです。マウスがボタンの上にあるがパスの上にはないときにボタンを押すにはどうすればよいですか?

4

1 に答える 1

1

これは、のBorder要素のBackgroundプロパティがControlTemplate正しく設定されていないためです。それは期待Brushし、あなたは提供しColorました。DynamicResourceであるため、ブラシはまったく設定されていません。したがって、Clickでは表示されません。ブラシを提供するだけです。

これでうまくいくはずです:)

<Border Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
于 2013-03-08T15:34:17.420 に答える