我需要在WPF TextWrapping
中应用CheckBox
。
请看这两个样本:
<CheckBox>
<TextBlock TextWrapping="Wrap"
Text="_This is a long piece of text attached to a checkbox."/>
</CheckBox>
<CheckBox>
<AccessText TextWrapping="Wrap"
Text="_This is a long piece of text attached to a checkbox."/>
</CheckBox>
如果我在TextBlock
的{{1}}中使用Content
,则检查元素(垂直对齐位于顶部)并且文本正确显示,但不显示加速器。
如果我在CheckBox
的{{1}}中使用AccessText
,则检查元素显示错误(垂直对齐为中心)。
如何更改元素的Content
以显示此CheckBox
是否正确?
答案 0 :(得分:15)
如果你将两者结合起来,你可能会得到你想要的效果。
<CheckBox>
<TextBlock>
<AccessText TextWrapping="Wrap"
Text="_This is a long piece of text attached to a checkbox."/>
</TextBlock>
</CheckBox>
答案 1 :(得分:0)
您是否尝试为AccessText设置隐式样式,或者只是可以应用的AccessText样式?
这是一种隐含的风格:
<Style x:Key="{x:Type AccessText}"
TargetType="{x:Type AccessText}"
BasedOn="{x:Null}">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
<Setter Property="TextWrapping" Value="NoWrap"/>
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="VerticalAlignment" Value="Top"/>
<Setter Property="Margin" Value="5,2"/>
<Setter Property="Text" Value="AccessText"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="Gray"/>
</Trigger>
</Style.Triggers>
</Style>
如果在项目中包含此项,则AccessText应按您希望的方式运行。如果您还需要其他东西,请调整样式。
如果您不希望所有AccessTexts都以这种方式运行,请为该样式命名并将其应用于您使用它的位置:
<CheckBox>
<AccessText TextWrapping="Wrap" Style="{DynamicResource CkbxAccessTextStyle}"
Text="_This is a long piece of text attached to a checkbox."/>
</CheckBox>
答案 2 :(得分:0)
使用 VerticalContentAlignment 将框对准顶部。使用填充调整文本位置。
<CheckBox VerticalContentAlignment="Top" Padding="2,-2,0,0">
<AccessText Text="_This is a long piece of text attached to a checkbox." TextWrapping="Wrap"/>
</CheckBox>