Стиль WPF CheckBox с TextWrapping
Мне нужно применить TextWrapping
в WPF 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
в Content
CheckBox
, элемент проверки (вертикальное выравнивание сверху) и текст отображается правильно, но не ускоритель.
![alt text]()
Если я использую AccessText
в Content
CheckBox
, элемент проверки отображается неправильно (вертикальное выравнивание - это центр).
Как я могу изменить Style
элементов для отображения этого CheckBox
правильно?
Ответы
Ответ 1
Если вы объедините эти два, вы, вероятно, получите желаемый эффект.
<CheckBox>
<TextBlock>
<AccessText TextWrapping="Wrap"
Text="_This is a long piece of text attached to a checkbox."/>
</TextBlock>
</CheckBox>
Ответ 2
Вы пытались установить неявный стиль для 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>