WPF CheckBox стиль с TextWrapping - PullRequest
15 голосов
/ 01 июня 2010

Мне нужно применить 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 правильно?

Ответы [ 2 ]

14 голосов
/ 01 июня 2010

Если вы объедините два, вы, вероятно, получите желаемый эффект.

<CheckBox>
    <TextBlock>
        <AccessText TextWrapping="Wrap"  
                    Text="_This is a long piece of text attached to a checkbox."/>  
    </TextBlock>
</CheckBox>
0 голосов
/ 06 ноября 2010

Вы пытались установить неявный стиль для 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> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...