2012-01-07 99 views
1

可能重複:
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

我怎樣才能改變我的代碼,以避免這種?

+0

這就是正確的自定義模板,但我不知道,我一直在尋找一個「扁平按鈕」:d – PeterP 2012-01-07 13:02:34

+2

是我的問題不清楚或者爲什麼你們downvote?我是WPF的初學者... – PeterP 2012-01-07 13:07:26

回答

1

將按鈕的填充設置爲-2,這將導致圖像隱藏邊框。

像這樣:

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

對於更復雜的佈局的變化(如鼠標懸停效果和等),你需要改變,雖然按鈕的模板。 This article將爲您提供基本知識。

+0

好吧,是的,似乎是一種解決方法。這不是真的有用。但是,非常感謝! – PeterP 2012-01-07 15:34:34

3

在WinForms中有一個簡單的方法:將FlatStyle設置爲Flat,例如,

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

至於WPF(儘管Tobias的答案,似乎就在我寫這篇:-),這裏存在一些有用的附加信息:WPF Flat Button

+0

該鏈接解釋它,謝謝! – PeterP 2012-01-07 13:03:36

+1

@Cody Gray我的答案涵蓋了這兩個問題,因爲這個問題的通用措辭。我是新來的,如果那是不合格的,我很抱歉。 – carboncrank 2012-01-07 14:27:14

+0

啊,夠公平的。沒有什麼不對,它只是有點不尋常。爲了節省您將來的一些時間,請檢查問題下顯示的標籤 - 它們看起來像藍色按鈕。有些人不願意重複他們在問題中提供的背景。 – 2012-01-07 15:15:56

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> 
+0

嗯,我不能得到這個運行... – PeterP 2012-01-07 15:33:42