2011-04-27 18 views
8

क्या कोई सामग्री प्रदाता के साथ काम करने के लिए टेक्स्टट्रिमिंग प्राप्त करने का कोई आसान तरीका है?डब्ल्यूपीएफ: सामग्री सामग्री पर टेक्स्ट ट्रिमिंग

मैंने टेक्स्टब्लॉक और एक्सेसटेक्स्ट के लिए शैलियों का निषेध किया है जिसमें टेक्स्टट्रिमिंग को CharacterEllipsis पर सेट किया गया है, लेकिन यह ContentPresenter द्वारा नहीं उठाया गया है। मैं ContentPresenter को AccessText या TextBlock में बदल सकता हूं और इसे वहां सेट कर सकता हूं, लेकिन फिर टेम्पलेट केवल टेक्स्ट सामग्री को संभालता है।

कोई सुझाव?

धन्यवाद! तत्वों है कि UIElement से निकाले जाते हैं, लेकिन नियंत्रण नहीं के लिए

उत्तर

10

अंतर्निहित शैलियाँ, अगर तत्व एक नियंत्रण के खाका जब तक implict शैली आवेदन संसाधन में परिभाषित किया गया है में परिभाषित किया गया है नहीं लगाए जाते। ContentPresenter द्वारा उपयोग किए गए टेक्स्टब्लॉक के लिए भी यही सच है।

उदाहरण के लिए, निम्नलिखित XAML में TextBlock है कि अंततः बटन की सामग्री पेश करने के लिए इस्तेमाल किया नहीं अंतर्निहित शैली मिल जाएगा:

<Window.Resources> 
    <Style TargetType="TextBlock"> 
     <Setter Property="Foreground" Value="Red" /> 
    </Style> 
</Window.Resources> 
<StackPanel> 
    <Button Content="Will not be red" /> 
    <TextBlock Text="Will be red" /> 
</StackPanel> 

आपको लगता है कि ठीक उसी शैली लेने के लिए और करने के लिए इसे ले जाते हैं आवेदन के संसाधन, तो दोनों लाल हो जाएगा:

<Application.Resources> 
    <Style TargetType="TextBlock"> 
     <Setter Property="Foreground" Value="Red" /> 
    </Style> 
</Application.Resources> 

तो तुम आवेदन संसाधन है, जो आम तौर पर एक अच्छा विचार नहीं है करने के लिए अपने निहित शैली स्थानांतरित कर सकते हैं या तो। या आप अपने विशिष्ट परिदृश्य के लिए प्रदर्शन को कस्टमाइज़ कर सकते हैं। इसमें एक अंतर्निहित डेटा टेम्पलेट जोड़ना, या नियंत्रण के टेम्पलेट को अनुकूलित करना शामिल हो सकता है।

यदि आप अधिक जानकारी प्रदान कर सकते हैं, तो यह जानना आसान होगा कि सबसे अच्छा तरीका कौन सा है।

+0

यहां तक ​​कि हाइपरलिंक लाल हैं, * आपने क्या किया है *! –

+3

@ एचबी। - मैंने शहर को लाल रंग दिया! – CodeNaked

+1

इस स्पष्टीकरण के लिए धन्यवाद! कहीं और पोस्ट किया गया एक और समाधान ContentPresenter में एक शैली को परिभाषित करता है। स्रोत, नियंत्रण टेम्पलेट के अंदर। मैंने इस दृष्टिकोण की कोशिश की और यह काम करता है। हमारे मामले में अंतर्निहित शैली को एप्लिकेशन में ले जा रहे हैं। स्रोत काम करेंगे क्योंकि सभी टेक्स्टब्लॉक को ट्रिम करना होता है। क्या मैंने उपर्युक्त डेटामैप्लेट को ऊपर दिया है जैसा कि मैंने ऊपर किया है? आप डेटामैप्लेट को कैसे परिभाषित करते हैं ताकि आप मनमानी सामग्री का समर्थन कर सकें? – dex3703

संबंधित मुद्दे