为什么 System.Windows.Controls.Button 的内边距始终为 10px?

发布于 2024-09-27 20:49:42 字数 156 浏览 2 评论 0原文

请参阅屏幕截图。青色边框框是按钮,蓝色填充是矩形。我一生都无法弄清楚如何摆脱按钮中的填充。有没有办法将矩形放置在左上角,使其接触青色边框?

alt text

谢谢。

See screenshot. The bounding cyan-bordered box is the button, while the blue fill is the rectangle. I cannot for the life of me figure out how to get rid of the padding in the button. Is there a way to position the rectangle to the top left so it touches the cyan border?

alt text

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

南风起 2024-10-04 20:49:42

您是否尝试将矩形的边距设置为0

<Button x:Name="Button" BorderThickness="0" Margin="0" Padding="0" Width="96" Height="96">
    <Rectangle Fill="Blue" Margin="0" Width="96" Height="96" />
</Button>

编辑:填充必须来自按钮控件模板。尝试使用自定义模板:

<Style x:Key="MyButton" TargetType="Button">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Grid>
                    <Rectangle Fill="Blue" Margin="0" Width="96" Height="96" />
                </Grid>
           </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

<Button x:Name="Button" BorderThickness="0" Margin="0" Padding="0"
    Width="96" Height="96" Style="{StaticResource MyButton}" />

Did you try setting the Rectangle's margin to 0?

<Button x:Name="Button" BorderThickness="0" Margin="0" Padding="0" Width="96" Height="96">
    <Rectangle Fill="Blue" Margin="0" Width="96" Height="96" />
</Button>

EDIT: The padding must come from the button control template. Try using a custom template:

<Style x:Key="MyButton" TargetType="Button">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Grid>
                    <Rectangle Fill="Blue" Margin="0" Width="96" Height="96" />
                </Grid>
           </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

<Button x:Name="Button" BorderThickness="0" Margin="0" Padding="0"
    Width="96" Height="96" Style="{StaticResource MyButton}" />
爱要勇敢去追 2024-10-04 20:49:42

解决方法:

绘制一个矩形并向其添加 onclick。

A workaround:

Draw a rectangle and add onclick to it.

千と千尋 2024-10-04 20:49:42

我无法生成那种明显的行为,但我想知道,您会在 Windows Phone 应用程序中进行开发吗?

如果是这样,您最有可能看到的不是 Padding 的结果,而是“PhoneTouchTargetOverhang”的结果。这是 App.xaml 中的一个 Thickness 资源,由“PhoneButtonBase”样式用于按钮的外边框 Margin

这实际上是 Windows Phone 7 应用于按钮的默认样式的副本。要替换它,您需要实际指定您的按钮使用“PhoneButtonBase”样式,然后更改“PhoneTouchTargetOverhang”的值。这将更新使用此样式的任何按钮。

I can't generate that apparent behaviour but I wonder, would you be developing in Windows Phone app?

If so what you are most likely seeing is not the result of Padding but result of "PhoneTouchTargetOverhang". This is a Thickness resource found in App.xaml and is used by the "PhoneButtonBase" style for the outer border Margin for the button.

This is actually a copy of the default style that windows phone 7 applies to buttons. To replace it you will need to actually specify that your button use the "PhoneButtonBase" style then change the value of "PhoneTouchTargetOverhang". This will update any button using this style.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文