2010-03-12 14 views
5

bir sarma TextBlock renklendirmek için:mümkün 1 bir TextBlock varsa seletively Örneğin Silverlight/WPF

"lorem ipsum havuç, gelişmiş indirimler, ancak böyle emek ve obezite gibi, occaecat zaman ve canlılığını yapmak doğum sancıları arzunun zevk içinde eleştirilen üzerine gelip cupidatat çeşit. yıllar boyunca, eski ea commodo consequat aliquip için egzersiz, okul bölgesi emeği nostrud ama kim, gelecek. Duis ancak bir cillum et dolore magna kaçmak hiçbir bileşkesini üretir olmak. excepteur onlar culpa qui officia içinde excepteur değil, Sunt cupidatat siyahlar o yumuşak beyinler değişecek terk etmektir. " bu TextBlock ilk% 10 istiyorum, yazı tipi rengi kırmızı olmalı ve öyle ki kalan yeşil renkte olmalıdır.

Bu belki de "lorem ipsum havuç, domates adipisici" "n" bir parçası renk demek. Temelde piksel yolu font color yerine karakter akıllıca.

diğer önemli davranış oranı sarma saygı olduğu ve textblock içeriğinin% 50 renkli ise okuma sırası blok birinci yarı renkte olup, olup, bu metin% 50 anlamına gerektiğidir. Örneğin

, bu (doğru cevapları ile) benzer bir soru, ama hiçbir sarma ile Label/TextBlock, Is it possible to seletively color a label in Silverlight?

cevap

3

1 inanmıyorum ilgili bu ölçüm olmadan piksel akıllıca (mümkünse en az değildir bir satır-satır olarak bağlı söz gelen iki yöntemden biri ile metin). Bu metin dinamik ise, iki çalışır metin bölme kod yazmak gerekir (ve tahsilat TextBlock.Inlines atamak istediğiniz bir karakter akıllıca Çalıştır nesnesi

<TextBlock FontSize="24" TextWrapping="Wrap"> 
    <Run Foreground="Red">Lorem ipsum dolor sit amet, consectetur</Run> 
    adipisicing elit, sed do eiusmod tempor incididunt ut labore et 
    dolore magna aliqua. Ut enim ad minim veniam... 
</TextBlock> 

kullanılarak yapılabilir), ama bir özel denetim içine saklanması çok zor olmamalı. Eğer metin ayırmak için,

4

çalışır kullanabilirsiniz. Bu anlamda, sen benim kadarıyla ... aynen böyle

<TextBlock> 
     <Run Background="Red"> 
      Republican 
     </Run> 
     <Run Background="Blue"> 
      Democrat 
     </Run> 
    </TextBlock> 
2

her çalışma arka planını değiştirebilir, hayır bu senaryo için destek inşa yoktur. WPF, 1 Kendi TextFormatter yazmak zorunda kalırdım bekliyoruz. Silverlight, sen ekranda bitmap çizim sonra değiştirmek piksel bulmak için kullanan bir bellek içi bitmap ve görüntüden manipülasyon render ve benzeri korkunç bir şey yapmak gerekebilir. Eugh.

İlgili konular