按钮未正确对齐- WPF

91zkwejq  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(139)

我在Stackpanel中有一个按钮,它似乎有填充,但我已经将其设置为0
这显示从按钮边界移动的按钮背景

是否有任何特殊的边距、边框或其他设置我可能会错过?
下面是XAML:

<StackPanel Orientation="Vertical"
        VerticalAlignment="Center"
        HorizontalAlignment="Center">
    <Button x:Name="btnOpcion1"
        Style="{StaticResource BtnPrincipal}"/>
</StackPanel>

这是风格:

<Style x:Key="BtnPrincipal" TargetType="Button">
        <Setter Property="Background" Value="{StaticResource AzulAquaOscuro}" />
        <Setter Property="BorderThickness" Value="0" />
        <Setter Property="Height" Value="40" />
        <Setter Property="Foreground" Value="White" />
        <Setter Property="Width" Value="200" />
        <Setter Property="Padding" Value="0" />
        <Setter Property="Margin" Value="5" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Background="{TemplateBinding Background}">
                        <ContentPresenter HorizontalAlignment="Center"
                                          VerticalAlignment="Center" />
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="{StaticResource AzulAquaClaro}" />
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Background" Value="{StaticResource GrisClaro}" />
                <Setter Property="Cursor" Value="No" />
            </Trigger>
        </Style.Triggers>
    </Style>
bxgwgixi

bxgwgixi1#

我注意到你在按钮样式里设置了按钮的宽度和高度,如果StackPanel的宽度和高度比按钮的小,那么它在设计窗口里看起来会有点奇怪。
在您的示例中,您可能已将StackPanel的大小指定为与按钮相同的大小,但是请记住,按钮的边距为5,这会使其看起来像是移动了一点。
我尝试了一些类似于您在示例中所做的操作,它看起来如下所示:

要解决这个问题,你可以尝试不在按钮样式中指定详细的宽度/高度,或者简单地将它们设置为自动并在拉伸时对齐。这将使你的按钮根据StackPanel的大小设置它的宽度/高度。

<Setter Property="Height" Value="auto" />
<Setter Property="Width" Value="auto" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch" />

相关问题