【问题标题】:How do you vertically align check box of the checkbox properly?如何正确垂直对齐复选框的复选框?
【发布时间】:2011-04-18 04:11:36
【问题描述】:

当您将复选框添加到窗口并将其垂直居中时,从表面上看似乎没问题。但是,当您增加填充时,您会发现一些奇怪的东西——复选框的标签部分确实居中,但复选框仍然位于左上角。所以用足够的填充你会得到这样的结果

[ ]
     this is my checkbox

那么,问题是——如何正确对齐复选框的复选框?

编辑

<DockPanel>
      <StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
        <CheckBox Name="XSwitchCheckBox" 
                  VerticalContentAlignment="Center" 
                  VerticalAlignment="Center" 
                  Padding="4">X-axis switch</CheckBox>
    </StackPanel>
    <Image DockPanel.Dock="Bottom" Name="pictureBox1"></Image>
</DockPanel>

【问题讨论】:

  • VerticalContentAlignment="Center" 应该做的工作

标签: c# wpf


【解决方案1】:

我无法重现您的问题。您是设置 Padding 属性的 All 属性还是设置 Left 属性?您可能还想尝试调整 Margin 属性。

在我的小表单上有一个左填充,我的复选框看起来像:

   [] checkbo
      x1

您也可以尝试Padding="2,0,0,0",您应该会看到整个复选框在移动。我相信在您的代码中,您可能将填充设置为大于可用空间的值。

希望这将帮助您解决这个问题。

【讨论】:

  • 我想将其垂直居中,因此更改填充的左侧部分不会改变垂直对齐方式。我正在设置填充的所有部分。设置边距也不会影响问题,因为边距会改变小部件外部的空间。
  • 更改垂直填充不应影响与复选框对齐的选中部分相关的文本对齐方式。
【解决方案2】:

复选框布局是使用BulletDecorator Class 完成的。看起来您正在设置的填充正在应用于项目符号子项,而不是包含项目符号和子项的容器。

【讨论】:

  • 这看起来更像是一个错误,因为在这种情况下,复选框确实是固定的。
  • 是的,这不是我所期望的行为。
  • 我知道这是一个老问题,但是......如果它解释了如何获得所需的行为,这个答案会更有用。请注意,问题不仅在添加填充时出现。简单地增加 CheckBox 文本的字体大小也足以暴露对齐问题。
  • 公平评论。我不再使用 WPF,所以如果有人知道如何解决问题,请继续发布另一个答案!
【解决方案3】:

VerticalContentAlignment="Center" 为我工作。

注意:VerticalAlignment="Center" 不起作用,因为它指的是控件本身,而不是控件的内容。

感谢 Antoine Meltzheim 的回答。

【讨论】:

    猜你喜欢
    • 2012-04-06
    • 2020-10-04
    • 2016-05-05
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    相关资源
    最近更新 更多