C# 当方向=”时,按钮中的图像填充整个空间;垂直的;

C# 当方向=”时,按钮中的图像填充整个空间;垂直的;,c#,wpf,C#,Wpf,我想制作一系列按钮(如按钮栏),如下所示: +----------+ +----------+ | (image) | | (image) | | | | | | text | | text | +----------+ +----------+ 我为XAML准备了以下内容: <StackPanel Orientation="Horizontal"> <Button Name=&q

我想制作一系列按钮(如按钮栏),如下所示:

+----------+  +----------+
|  (image) |  |  (image) |
|          |  |          |
|   text   |  |   text   |
+----------+  +----------+
我为XAML准备了以下内容:

 <StackPanel Orientation="Horizontal">
    <Button Name="btnAddCompany" Width="60" Height="60" Background="Transparent"  ToolTip="test" >
        <StackPanel Orientation="Vertical">
            <Image Source="/Images/LeftArrow25px.png"></Image>
            <TextBlock Text="Left" Foreground="AntiqueWhite" HorizontalAlignment="Center" Width="50"/>
        </StackPanel>
    </Button>
 </StackPanel>

当我将顶部StAdPad方向改变为水平时,中间StackPanel的图像占据整个按钮(它的大小被调整为拉伸)。我试过强制水平对齐和垂直对齐居中,但没有效果


有人知道这里发生了什么吗?

当我们在“图像”控件的父容器中设置相同的宽度和高度时,会发生这种行为,“图像”控件会自动将图像拉伸到父容器的宽度。因此,任何大小的图像都将延伸到60x60,它将完全覆盖父容器和文本。将图像控件的“拉伸”设置为“均匀”或“无”也不会有任何帮助

我现在可以想到两个解决方案:

更改父容器的高度

//change Height = "60" to Height = "80" and you can observed the text come out.
<Button Name="btnAddCompany" Width="60" Height="80" Background="Transparent"  ToolTip="test" > 
//将Height=“60”更改为Height=“80”,就可以看到文本出来了。
控制图像控件的大小

<Image Source="/Images/LeftArrow25px.png" Height="32" Width="32" Stretch="Uniform"></Image>

两种解决方案都不太好,我今天想到更好的解决方案时会回来。。。(如果今天没有任何更新,则表示我失败;d)