2010-06-01 6 views
14

Ich muss eine TextWrapping in der WPF CheckBox anwenden.WPF CheckBox Stil mit der TextWrapping

Bitte schauen Sie sich diese beiden Proben:

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

Wenn ich ein TextBlock im Content der CheckBox verwenden, das Kontrollelement (vertikale Ausrichtung ist oben) und der Text richtig angezeigt wird, aber nicht das Gaspedal.

alt text

Wenn ich ein AccessText im Content des CheckBox verwenden das Kontrollelement zeigt falsch (vertikale Ausrichtung Mitte). Wie kann ich die Style der Elemente ändern, um diese CheckBox korrekt anzuzeigen?

+3

Ein Mann Müll eines anderen Mannes Schatz ist. Ich wollte herausfinden, wie ich mein Prüfelement vertikal zentriert in Bezug auf den Text machen kann, weil VerticalAlignment und VerticalContentAlignment nicht helfen. Antwort: Ich muss nur AccessText anstelle von TextBlock verwenden! +1 für den Tipp :) – Qwertie

+0

Gern geschehen. Aber meine Frage bleibt hier ... –

Antwort

13

Wenn Sie die beiden kombinieren, erhalten Sie wahrscheinlich den gewünschten Effekt.

+0

scheint wie es nicht funktioniert auf 3.5sp1 –

+0

Ich habe versucht, es funktioniert nicht. Sie können es sehr schnell mit z. B. dem XamlPad versuchen. –

0

Haben Sie versucht, einen impliziten Stil für den AccessText festzulegen, oder nur einen AccessText-Stil, den Sie anwenden können?

Hier ist ein impliziter Art, die funktionieren würde:

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

Wenn Sie dies das Access in Ihrem Projekt enthalten sollte, wie Sie wollen arbeiten. Wenn Sie etwas anderes benötigen, passen Sie den Stil an.

Wenn Sie nicht alle AccessTexts wollen auf diese Weise verhalten, den Artnamen und es gelten, wenn Sie es verwenden:

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

Leider hat nicht wie mit dem TextBlock funktioniert. –