wpf - 如何对面板中的所有元素应用相同的边距?

发布于 2024-09-11 09:32:39 字数 173 浏览 3 评论 0原文

有没有一种方法可以自动告诉面板(例如停靠面板)内的所有子项(例如标签、文本框等)的边距为 5?

即,与必须单​​独为每个元素设置边距相反 - 还要注意在面板本身上设置边距是不好的,因为面板有边距而不是元素。

顺便说一下 - 我注意到 DockPanel 上似乎没有 PADDING 元素(这会有帮助)

Is there a way of automatically tells all children items (e.g. labels, textboxes etc) to have a margin of 5, within a panel (e.g. dockpanel)?

i.e. as opposed to having to set the margin for each element separately - also noting setting the margin on the panel itself is no good as then the panel has the margin not the elements.

by the way - I note there doesn't seem to be a PADDING element on the DockPanel (which would have helped)

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

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

发布评论

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

评论(2

时光瘦了 2024-09-18 09:32:51

正如这个答案 https://stackoverflow.com/a/21479885/10550394 中所述,您可以简单地定义一个样式您在坞站面板资源中的控件。这是一个简单的版本:

<DockPanel LastChildFill="False">
    <DockPanel.Resources>
        <Style TargetType="Button">
            <Setter Property="Margin" Value="5,0,0,0"/>
        </Style>
    </DockPanel.Resources>
    <Button Content="Button 1"></Button>
    <Button Content="Button 2"></Button>
    <Button Content="Button 3"></Button>
    <Button Content="Button 4"></Button>
</DockPanel>

As outlined in this answer https://stackoverflow.com/a/21479885/10550394, you can simply define a style for your controls in the resources of your dockpanel. Here is a simple version:

<DockPanel LastChildFill="False">
    <DockPanel.Resources>
        <Style TargetType="Button">
            <Setter Property="Margin" Value="5,0,0,0"/>
        </Style>
    </DockPanel.Resources>
    <Button Content="Button 1"></Button>
    <Button Content="Button 2"></Button>
    <Button Content="Button 3"></Button>
    <Button Content="Button 4"></Button>
</DockPanel>
城歌 2024-09-18 09:32:50

我相信答案是“不”。边距不能像字体大小那样继承,因此您需要执行以下操作之一:

  1. 使用 Grid 而不是 DockPanel。这将允许您使用行和列定义来保持项目之间的间距一致。

  2. 使用样式。您仍然需要引用每个元素的样式(例如,Style="{StaticResource MarginStyle}",这将需要更多的输入,而不仅仅是 Margin="10,5",但它允许您将所有边距值保留在一个位置。

  3. 咬紧牙关并进行设置 。单独设置每个元素的边距。

I believe the answer is "no". Margin is not inheritable the way, say, font size is, so you would need to do one of the following:

  1. Use a Grid instead of a DockPanel. This would allow you to use row and column definitions to maintain consistent spacing between items.

  2. Use a style. You will still have to reference the style for each element (e.g., Style="{StaticResource MarginStyle}", which will require more typing than just Margin="10,5", but it would allow you to keep the margin values all in one place.

  3. Bite the bullet and set the margin of each element individually.

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