2010-06-01 11 views
14

WPF CheckBox ürününe TextWrapping uygulamam gerekir.WPF CheckBox stili, TextWrapping

bu iki örneğin bakınız:

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

Ben CheckBox onay elemanı (dikey hizalama üst olan) ve düzgün metin görüntüler, ancak hızlandırıcı ait Content bir TextBlock kullanın. I CheckBox arasında Content bir AccessText kullanın

alt text

, kontrol elemanı görüntüler yanlış (dikey hizalama merkezi).

Bu CheckBox öğesinin görüntülenebilmesi için öğelerin Style bölümlerini nasıl değiştirebilirim?

+3

Bir adamın çöp başka bir adamın hazinedir. VerticalAlignment ve VerticalContentAlignment'in yardımcı olmadığından, kontrol elemanımın metne göre dikey olarak nasıl ortalanacağını öğrenmek istedim. Cevap: Sadece TextBlock yerine AccessText kullanmalıyım! Bahşiş için +1 :) – Qwertie

+0

Rica ederim. Ama benim soru burada kalır ... –

cevap

13

Eğer ikisini birleştirirseniz, muhtemelen arzu ettiğiniz etkiyi elde edersiniz.

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

gibi çalışır 3.5sp1 –

+0

üzerinde çalıştım, işe yaramaz. XamlPad kullanarak çok hızlı deneyebilirsiniz. –

0

AccessText için örtük bir stil ayarlamayı veya yalnızca uygulamanız için bir AccessText stili ayarlamayı denediniz mi?

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

projeniz AccessText istediğiniz şekilde çalışması gerekir bu eklerseniz:

İşte çalışacak örtük bir tarzı. Başka bir şeye ihtiyacınız varsa, stili ayarlayın.

Kullanmaya nerede, bu şekilde davranması stil adı ve uygulamak tüm AccessTexts istemiyorsanız:

<CheckBox>   
    <AccessText TextWrapping="Wrap" Style="{DynamicResource CkbxAccessTextStyle}"   
       Text="_This is a long piece of text attached to a checkbox."/>   
</CheckBox> 
+0

Talihsiz TextBlock ile çalışmadı. –