2010-06-01 2 views
14

WPF CheckBoxTextWrapping을 적용해야합니다.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> 

을 나는 CheckBox, 체크 요소 (수직 정렬이 최고입니다) 제대로 텍스트 표시가 아니라 가속기의 ContentTextBlock를 사용하는 경우. I는 CheckBoxContentAccessText를 사용하는 경우

alt text

체크 표시 소자 잘못된 (수직 배향 중심).

CheckBox을 표시하기 위해 요소의 Style을 어떻게 바꿀 수 있습니까?

+3

한 사람의 쓰레기가 다른 남자의 보물이다. VerticalAlignment 및 VerticalContentAlignment가 도움이되지 않기 때문에 텍스트를 기준으로 내 체크 요소를 세로 가운데로 만드는 방법을 알아 냈습니다. 답변 : TextBlock 대신 AccessText를 사용해야합니다! 팁 +1 : – Qwertie

+0

당신을 진심으로 환영합니다. 하지만 여기에 내 질문은 남아 ... –

답변

13

두 가지를 결합하면 원하는 효과를 얻을 수 있습니다.

<CheckBox> 
    <TextBlock> 
     <AccessText TextWrapping="Wrap" 
        Text="_This is a long piece of text attached to a checkbox."/> 
    </TextBlock> 
</CheckBox> 
+0

3.5sp1에서 작동하지 않는 것 같아 –

+0

나는 그것을 시도했지만, 작동하지 않습니다. 예를 들어 XamlPad를 사용하여 매우 빠르게 시도 할 수 있습니다. –

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> 
+0

불행히도 은 TextBlock과 같이 작동하지 않았습니다. –