首页 > 解决方案 > 按钮内 StackPanel 的宽度很窄。(WPF)

问题描述

我想制作一个带有类似于以下图像的按钮:

在此处输入图像描述

为此,我在 xaml 中编写了以下内容:

<Button
  Style="{DynamicResource BotonRedondo2}"
  Width ="AUTO"
  Cursor="Hand"
  Background="#3b5998"
  Grid.Column="0">
  <StackPanel  Width ="Auto" Orientation="Horizontal"  >
    <Image  HorizontalAlignment="Left" Source="/Test;component/Imagenes/face.png"/>
    <TextBlock  HorizontalAlignment="Center" VerticalAlignment="Center" Text="LOGIN WITH XXXXX" />
  <StackPanel>
</Button>

但结果如下:

在此处输入图像描述

StackPanel 的宽度与按钮的宽度不匹配。

关于如何解决问题的任何建议?

欢迎评论或提问

更新

也许我应该指出该按钮位于网格的列中,如下所示:

<Grid
  Grid.Row="0">
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="*" />
    <ColumnDefinition Width="*" />
  </Grid.ColumnDefinitions>
  <Button 
    Style="{DynamicResource BotonRedondo2}"
    Width ="AUTO"
    Cursor="Hand"
    Background="#3b5998"
    Grid.Column="0">
    <StackPanel  Width ="Auto" Orientation="Horizontal"  >
      <Image  HorizontalAlignment="Left" Source="/Test;component/Imagenes/face.png"/>
      <TextBlock  HorizontalAlignment="Center" VerticalAlignment="Center" Text="LOGIN WITH XXXXX" />
    </StackPanel>
  </Button>
  <Button
    Style="{DynamicResource BotonRedondo2}"
      Grid.Column="1"
      Width ="Auto"
      Background="Orange"
      Content="LOGIN2"
      Margin="3"/>
</Grid>

如果我删除“自动”,按钮如下所示:

在此处输入图像描述

UPDATE 适用于按钮的样式如下:

<Style TargetType="Button" x:Key="BotonRedondo2">
  <Setter Property="Background" Value="Blue"/>
  <Setter Property="Foreground" Value="White"/>
            
  <Setter Property="Height" Value="35"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="Button">
        <Border BorderThickness="0"
          Background="{TemplateBinding Background}"
          CornerRadius="4">
          <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Border>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

标签: wpfbuttonstackpanel

解决方案


在按钮的样式中,它应该这样写:

CornerRadius="4">
<ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Center"/>


推荐阅读