2011-12-03 24 views
6

Có thể thêm các màu động vào một TextBlock ..i.e. có một ký tự trong một màu và màu tiếp theo trong một màu khác.Nhiều Màu Trong TextBlock

<TextBlock Text="{Binding no}" TextWrapping="Wrap" Margin="10,0,0,0" Style="{StaticResource PhoneTextSubtleStyle}" FontSize="40" Foreground="#A400C4FF" > 
    // Can we add something here to specify what colours for what chars 
</TextBlock> 

Về cơ bản tôi nhập chuỗi ký tự 4 động từ không. Tôi đã ràng buộc nó với TextBlock này bên trong một ListBox. Có thể có các ký tự trong các màu khác nhau không.

Nếu có thể thêm các màu này một cách linh động ví dụ: Nếu tôi nhấp vào một nút, một số ký tự sẽ thay đổi màu sắc?

Cảm ơn bạn. Bất kỳ Trợ giúp nào được đánh giá cao.

Trả lời

25

Trên thực tế, bạn có thể, có thể có ích khi bạn đang làm một StringFormat trên một Textblock bị ràng buộc dữ liệu hoặc một số địa điểm khác.

Nếu bạn muốn thử mặc dù, đây là ví dụ về SL cho nhãn biểu mẫu đặt dấu sao màu đỏ bên cạnh văn bản Trường Bắt buộc, nhưng sau đó cũng có thể thêm nhiều nội dung vào nó như minh họa trong ví dụ. Nên làm việc cho Silverlight, WPF, UWP, v.v ...

<TextBlock> 
     <Run Text="*" Foreground="#FFE10101"/><Run Text="Required Line" /> 
     <Run Text="Red" Foreground="Red"/> 
     <Run Text="Blue" Foreground="Blue"/> 
     <Run Text="{Binding SomeString, StringFormat='Hell ya you can make \{0\} a different color!'}" Foreground="Orange"/> 
</TextBlock> 
0

TextBlock không hỗ trợ nhiều màu Foreground.

Bạn có thể tạo lại hành vi này bằng cách sử dụng nhiều textblocks (một cho mỗi chữ cái) và đặt chúng trong một wrappanel. Sau đó, bạn có thể thay đổi màu của các ký tự/chữ cái riêng lẻ theo ý muốn.
Hãy coi chừng tác động hiệu suất có thể xảy ra mà điều này có thể có. Các lề xung quanh chữ cái cá nhân sẽ cần phải được điều chỉnh để tái tạo hành vi tiêu chuẩn mặc dù. Đặc biệt thận trọng xung quanh dấu chấm câu.

+0

Thanks It Works !! – cjds

0

Tôi đang phát triển cho Mango với SDK WP7. Bạn có thể sử dụng < Chạy >. Có vẻ như một chút lỗi trên WP7, bạn phải thêm một khoảng trống về quyền sở hữu Run.Text để có được khoảng cách chính xác:

<TextBlock>Hello<Run Foreground="Bisque" Text=" Holla "></Run>and hello again!</TextBlock>; 
+0

Làm cách nào để đặt văn bản trong thẻ Chạy này động? – iamatsundere181

Các vấn đề liên quan