WPF按钮中图像和文本的对齐方式

3

我需要一种方法来将标签右对齐并将图像右对齐。我尝试了以下代码:

<Button HorizontalAlignment="Left" Margin="11,265,0,0" VerticalAlignment="Top" Width="190" Height="51">
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
                <Image Source="Resources/Accept-icon.png" Stretch="Uniform" HorizontalAlignment="Left"/>
                <Label Content="ذخیره" HorizontalContentAlignment="Right" VerticalAlignment="Center" FontFamily="2  badr" FontSize="20"/>
            </StackPanel>
        </Button> 

但我发现标签依附在图片上。此外,是否有一些类似于单元格内边距的参数(从右/左/上/下)?

尝试使用Padding属性进行'cell padding'。您可以在任何Control上使用它:请参阅MSDN上的Control.Padding Property页面。 - Sheridan
2个回答

10

尝试使用 DockPanel 替代

<Button HorizontalAlignment="Left" Margin="11,265,0,0" VerticalAlignment="Top" Width="190" Height="51">
  <DockPanel HorizontalAlignment="Stretch">
    <Image Source="Resources/Accept-icon.png" Stretch="Uniform" DockPanel.Dock="Left"/>
    <Label Content="ذخیره" DockPanel.Dock="Right" VerticalAlignment="Center" FontFamily="2  badr" FontSize="20"/>
  </DockPanel>
</Button> 

对于您的填充问题,您要填充哪个元素?


谢谢Richard。你的回答对我很有帮助...不需要单元格填充。我已经找到了。(+1) - Babak.Abad
结果!我一直在尝试各种想法,抓狂了,这些小问题浪费了宝贵的时间。感谢您的答案,给@Richard加1。 - DIGGIDY
很高兴能帮助@DIGGIDY - Dutts

6

建议使用Grid代替StackPanel

<Grid>
   <Image ... HorizontalAlignment="Left"/>
   <Label ... HorizontalAlignment="Right"/>
</Grid>

有一种名为Padding的属性,由类似于Block BorderControlTextBlock等类型发布,例如Image控件不会发布它,因为它直接继承自FrameworkElement,但Label是一个Control,所以会发布。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接