2016-05-17 121 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说你可以改变按钮宽度和高度,图像尺寸将被动态拉伸。