我有一个WPF项目,我正在尝试使用单选按钮来确定要使用的TextBox
输入。但是,当我运行它时,单选按钮本身与容器的顶部对齐,我找不到任何影响它的对齐属性。这种行为有望吗?我一直在寻找答案,但似乎一切都在询问如何垂直对齐单选按钮。我的假设是它与我如何嵌套在其他控件中有关,但是如何在不改变太多的情况下使其工作?
这是与单选按钮相关的xaml:
<DockPanel Grid.Column="1" Margin="5,0,0,0">
<RadioButton HorizontalContentAlignment="Stretch" DockPanel.Dock="Top" IsChecked="True">
<xctk:TimePicker Name="TimePickerBox" Margin="0" Format="LongTime"
VerticalAlignment="Center"/>
</RadioButton>
<RadioButton Margin="0,5,0,0" DockPanel.Dock="Top">
<StackPanel Orientation="Horizontal">
<TextBox Name="Hours" Width="30" VerticalAlignment="Center">0</TextBox>
<Label>Hours</Label>
<TextBox Name="Minutes" Width="30" VerticalAlignment="Center">0</TextBox>
<Label>Minutes</Label>
<TextBox Name="Seconds" Width="30" VerticalAlignment="Center">0</TextBox>
<Label>Seconds</Label>
</StackPanel>
</RadioButton>
// ...
这就是它的样子:
如何让单选按钮垂直居中?
答案 0 :(得分:28)
为RadioButton设置 VerticalContentAlignment
为 Center
:
<RadioButton Margin="0,5,0,0" DockPanel.Dock="Top"
VerticalContentAlignment="Center">
.....
</RadioButton>
答案 1 :(得分:3)
在RadioButton
个元素上,尝试添加VerticalAlignment="Top" VerticalContentAlignment="Center"
。我在一个测试项目中做到了这一点,似乎可以解决这个问题。
答案 2 :(得分:0)
我真的不记得DockPanel.Dock
做了什么,但尝试将StackPanel
的{{1}}设置为VerticalAligment
,如果没有帮助也设置Center
{1}}至DockPanel.Dock
Center
答案 3 :(得分:0)
我复制了你的XAML,它完全符合你的要求。因此,似乎可能还有其他原因 请注意,radioButtons Bullet将始终与其内部文本块的第一行对齐 如需进一步阅读,请参阅此 How do I make a RadioButton's Bullet align top?获得解释。