gpt4 book ai didi

wpf - 如何使 RadioButton 的 Bullet 对齐顶部?

转载 作者:行者123 更新时间:2023-12-04 01:25:35 24 4
gpt4 key购买 nike

我有一个多行单选按钮,我希望项目符号位于内容的左侧(默认情况下)与单选按钮控件的顶部对齐。在 XAML 中执行此操作的最简单方法是什么?

最佳答案

备注 : 请务必查看Rachel's answer - 她将这一阶段进一步纳入通用模板

首先不要浪费你的时间 VerticalAlignmentVerticalContentAlignment (甚至 ControlTemplate )。他们不会做你想要或可能期望的事情。

MSDN 所述BulletDecorator (这是 CheckBox 和 RadioButton 用来呈现单选/复选按钮的控件)将自动设置图标的位置。您对此没有额外的控制权:

A Bullet always aligns with the first line of text when the Child object is a text object. If the Child object is not a text object, the Bullet aligns to the center of the Child object.



除非您更改控件模板(不必要的),否则您只能在内容为文本时将单选/复选图标放置在顶部。

所以如果你做这样的事情,它看起来不会很好,因为无论有多少 VerticalAlignment你都无法移动图标。您尝试设置的属性。
<RadioButton>
<StackPanel>
<TextBlock Text="First line"/>
<TextBlock Text="Something else"/>
</StackPanel>
</RadioButton>

但是 幸运的是,您几乎可以在 TextBlock 中放入任何您想要的东西。使用 InlineUIContainer .第一行中的文本(或内容)将自动指示图标的位置。如果你想要第一行下面的不是文本的东西,只需使用 <Linebreak/>然后 <InlineUIContainer/>
这是一个具有超大尺寸 TextBox 的示例更清楚地显示正在发生的事情。
<RadioButton>

<TextBlock VerticalAlignment="Top" TextWrapping="Wrap">

<TextBlock Text="Products with &lt;" VerticalAlignment="Center" Margin="0,0,5,0"/>

<InlineUIContainer BaselineAlignment="Center">
<TextBox FontSize="30" Width="25" Text="10" Margin="0,0,5,0"/>
</InlineUIContainer>

<TextBlock VerticalAlignment="Center" Margin="0,0,5,0">
<Run Text="days" FontWeight="Bold"/>
<Run Text="inventory" />
</TextBlock>

<LineBreak/>

<InlineUIContainer>
<StackPanel>
<CheckBox Content="Include unsold products" />
<CheckBox Content="Include something else" />
</StackPanel>
</InlineUIContainer>

</TextBlock>
</RadioButton>

关于wpf - 如何使 RadioButton 的 Bullet 对齐顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/533753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com