2016-05-17 159 views
1

的大小我有一對夫婦,我在我的應用程序GUI使用下面的XAML在我的WPF項目顯示按鈕的:設置按鈕大小圖像

<Button Style="{DynamicResource NoChromeButton}" Click="backBtn_Click" Margin="0,0,0,0" HorizontalAlignment="Left" > 
    <Image Source="C:\...\arrow_left.png" Height="30" Width="30" /> 
</Button> 
<Button Style="{DynamicResource NoChromeButton}" Click="RefreshBtn_Click" Margin="0,0,0,0" HorizontalAlignment="Left" > 
    <Image Source="C:\...\arrow_loop3.png" Height="30" Width="30" /> 
</Button> 

然而,當我跑我的應用程序,按鈕似乎比我在其上顯示的圖像的大小更大 - 即圖像是30x30,但按鈕​​是矩形的,而不是正方形,其高度大於它們的寬度。

我正在繪製按鈕,並在其他幾個按鈕的行中給出一個'菜單欄'看應用程序窗口的頂部。但是,由於這些按鈕的高度顯示的值比我設置的值高,因此在菜單欄上會顯示一些「白色空間」,其上方和下方顯示的其他按鈕的高度值我給自己定,例如:

<Button Style="{DynamicResource NoChromeButton}" Click="referThis" Margin="0,0,0,0" HorizontalAlignment="Left" HorizontalContentAlignment="Left" Height="30" Width="80"> 
    <TextBlock>Send Reference</TextBlock> 
</Button> 

通過此按鈕,它似乎是因爲我顯示文本,而不是在它的圖像,它一直保持到我設置的高度&寬度值,但這意味着它在上面和下面都有一些「空白區域」,因爲其他按鈕導致了我放置這些按鈕佔用比我預期更多的垂直空間的地方。

如何強制顯示圖像的按鈕以我設置的尺寸顯示?

編輯

看來,這是與當我手動調整時運行該申請的是,當調整窗口的大小<StackPanel>/<TabPanel>自動調整窗口大小會發生什麼做的......我已將<StackPanel>Height設置爲特定值,現在這意味着按鈕都被限制爲該尺寸,所以它們都保持相同的尺寸,這非常棒。

但是,當我調整窗口大小時,這會導致它們所在的<TabPanel>被調整大小,所以我最終得到了按鈕上方和下方的空白區域 - 是否有辦法阻止它?

回答

0

將按鈕的VerticalAlignment設置爲頂部。 在按鈕上設置所需的寬度/高度,而不是圖像。 通過Margin屬性執行此操作。也檢查出Alignment on MSDN。 然後將圖像的拉伸設置爲Stretch.Fill。

另外,東西你可能風格拋下你走,因爲這

<Button VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0"> 
     <Image Width="30" Height="30" /> 
</Button> 

完美地工作對我來說。

0

此代碼正好是你想要什麼:該圖像適合按鈕

<Button Width="100" Height="100" Padding="0" BorderThickness="0"> 
    <Image Source="image.jpg" Stretch="Fill"/> 
</Button> 

注意填充和了borderThickness值。 隨着RoyalPotato說你可以改變按鈕寬度和高度,圖像尺寸將被動態拉伸。