2010-06-01 11 views
14

के साथ डब्ल्यूपीएफ चेकबॉक्स शैली मुझे WPF CheckBox में TextWrapping लागू करने की आवश्यकता है। अगर मैं CheckBox, जांच तत्व (लंबवत संरेखण शीर्ष है) और ठीक से पाठ को प्रदर्शित करता है, लेकिन नहीं त्वरक की Content में एक TextBlock का उपयोगटेक्स्ट वर्पिंग

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

:

कृपया इस दो नमूनों को देखो।

alt text

अगर मैं CheckBox की Content में एक AccessText उपयोग करते हैं, जांच तत्व को प्रदर्शित करता है गलत (ऊर्ध्वाधर संरेखण केंद्र है)।

मैं CheckBox को प्रदर्शित करने के लिए तत्वों के Style को कैसे बदल सकता हूं?

+3

एक आदमी का कचरा एक और आदमी का खजाना है। मैं यह जानना चाहता था कि टेक्स्ट के संबंध में मेरे चेक तत्व को लंबवत रूप से केंद्रित कैसे किया जाए, क्योंकि वर्टिकल एलाइनमेंट और वर्टिकलकंटेंट एलाइनमेंट मदद नहीं करता है। उत्तर: मुझे टेक्स्टब्लॉक के बजाय एक्सेसटेक्स्ट का उपयोग करना होगा! टिप के लिए +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 के लिए एक अंतर्निहित शैली स्थापित करने की कोशिश की है, या केवल एक एक्सेसटेक्स्ट शैली जिसे आप आवेदन कर सकते हैं?

<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

दुर्भाग्य से <सेटर प्रॉपर्टी = "वर्टिकल एलाइनमेंट" वैल्यू = "टॉप" /> टेक्स्टब्लॉक के साथ काम नहीं करता है। –