[英]Why aren't my WPF radio buttons vertically aligned to the center?
我有一個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>
// ...
這就是它的樣子:
如何讓單選按鈕垂直居中?
將VerticalContentAlignment
設置為RadioButton的Center
:
<RadioButton Margin="0,5,0,0" DockPanel.Dock="Top"
VerticalContentAlignment="Center">
.....
</RadioButton>
在兩個RadioButton
元素上,嘗試添加VerticalAlignment="Top" VerticalContentAlignment="Center"
。 我在一個測試項目中做到了這一點,似乎就是這樣做的。
我真的不記得DockPanel.Dock
做了什么,但嘗試將StackPanel
的VerticalAligment
設置為Center
,如果它沒有幫助也將DockPanel.Dock
設置為Center
<RadioButton Margin="0,5,0,0" DockPanel.Dock="Center">
<StackPanel VerticalAlignment="Center" 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>
我復制了你的XAML,它完全符合你的要求。 所以似乎可能有另一個原因。
請注意,radioButtons Bullet將始終與其內部文本塊的第一行對齊。
有關進一步閱讀,請參閱此處: 如何制作RadioButton的Bullet對齊頂部? 作出解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.