如何实现带图像但没有边框的按钮?

时间:2012-01-07 12:35:12

标签: c# wpf xaml

  

可能重复:
  wpf flat button

如何实现图片中的按钮?

enter image description here

我尝试了以下内容:

    <Button Name="buttonSuchpfeil" Margin="184,39,522,364">
        <StackPanel>
            <Image Source="..\Pictures\Suchpfeil.jpg"></Image>
        </StackPanel>
    </Button>

但是我不喜欢这张照片边框:

enter image description here

如何更改我的代码以避免这种情况?

3 个答案:

答案 0 :(得分:3)

在WinForms中有一种简单的方法:将FlatStyle设置为Flat,例如

this.myButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;

至于WPF(尽管Tobias的答案就像我写的那样:-),这里有一些有用的附加信息:WPF Flat Button

答案 1 :(得分:2)

试试这个...我为按钮

创建了一个自定义模板
<Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
        <Setter Property="HorizontalContentAlignment" Value="Center"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="Padding" Value="1"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Border x:Name="border" BorderThickness="2" BorderBrush="Black">
                        <ContentPresenter></ContentPresenter>
                    </Border>
                    <ControlTemplate.Triggers>

                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Foreground" Value="#ADADAD"/>
                            <Setter Property="Opacity" TargetName="border" Value="0.15"/>
                        </Trigger>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="BorderBrush" TargetName="border" Value="#FF54FF08"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

        <Button  HorizontalAlignment="Left" Height="30" VerticalAlignment="Top" Width="35" Style="{DynamicResource ButtonStyle1}">
        <Image Source="Untitled-1.png" Stretch="Fill"></Image>          
     </Button>

答案 2 :(得分:1)

将按钮的填充设置为-2,这将导致图像隐藏边框。

像这样:

<Button Name="buttonSuchpfeil" Padding="-2" Margin="184,39,522,364">
    <StackPanel>
        <Image Source="..\Pictures\Suchpfeil.jpg"></Image>
    </StackPanel>
</Button>

对于更复杂的布局更改(如MouseOver效果等),您需要更改按钮的模板。 This article将为您提供基础知识。