6

背景画像付きのwppfボタンがあります。

背景にマウスを合わせると空になり、ボタンが表示されます。

マウス効果を無効にするにはどうすればよいですか?

<Button BorderBrush="{x:Null}" Content="Reset" BorderThickness="0"Foreground="White" Focusable="False">
                        <Button.Background>
                            <ImageBrush ImageSource="button.png" />
                        </Button.Background>
4

2 に答える 2

13

ボタンの視覚的なマウスオーバー効果を無効にする方法は次のとおりです。トリガーなどの操作方法の感触をつかむために、いくつかの設定を残しました。自由に試してみてください!

<Style TargetType="Button" x:Key="ImageButton" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
    <Setter Property="FocusVisualStyle" Value="{x:Null}" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border Name="border" 
                        BorderThickness="{TemplateBinding BorderThickness}"
                        Padding="{TemplateBinding Padding}" 
                        BorderBrush="{TemplateBinding BorderBrush}" 
                        CornerRadius="5"
                        Background="{TemplateBinding Background}">
                    <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="BorderBrush" Value="Gainsboro" />
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">
                        <Setter Property="Opacity" Value="0.25" />
                        <Setter Property="BorderBrush" Value="Transparent" />
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

編集:「BasedOn」を使用し、FocusVisualStyle を null (最初の 2 行) に設定すると、マウスオーバー効果が取り除かれます。他のすべては単なる例です。トリガーを介して遊ぶために、そこに境界線を追加しました(カスタムのマウスオーバー効果が必要なため)。

于 2012-10-30T14:41:47.717 に答える
8

の中ControlTemplateButton、Background プロパティはトリガーによってオーバーライドされます。
全体ControlTemplateをやり直して背景の変更を省略するか、画像を好きなコンテンツとして追加して、Buttonこれらすべての複雑さを回避することができます。

<Button.Content>
    <Image Source="button.png" />
</Button.Content>

または、そこにテキストも必要な場合:

<Button.Content>
    <Grid>
        <Image Source="button.png" />
        <TextBlock Text="Reset" VerticalAlignment="Center" HorizontalAlignment="Center" />
    <Grid>
</Button.Content>
于 2012-10-30T14:44:44.893 に答える