2013-02-14 36 views
14

Tôi có quyền kiểm soát người dùng là phần tử gốc là Lưới.Phông chữ tự động thay đổi kích cỡ WPF cho đến khi nó vừa với điều khiển gốc

Tôi cũng có một ContentControl đóng vai trò là trình giữ chỗ cho một số văn bản được điền khi dữ liệu được tải. Điều khiển này có thể được di chuyển xung quanh bên trong điều khiển người dùng và do đó vị trí của nó có thể ở bất cứ đâu.

Nếu văn bản quá dài để vừa với lưới gốc của điều khiển người dùng, tôi muốn giảm kích thước phông chữ của ContentControl cho đến khi văn bản phù hợp.

Vấn đề của tôi là tôi dường như không thể tìm thấy sự kiện mà tôi có thể xử lý để thực hiện quy trình này. Tôi đã thử sử dụng sự kiện ContentControl.LayoutUpdated, tuy nhiên, thông số người gửi cho điều này luôn xuất hiện là không có gì ... thực sự không hữu ích!

Tôi thực sự mong muốn được tư vấn về cách đạt được điều này.

Cảm ơn bạn

-Frinny

+4

Bạn có thể bao quanh ContentControl với một ViewBox mà sẽ mở rộng quy mô ContentControl để vừa với lưới. Đây có phải là một lựa chọn không? –

Trả lời

28

Bao bì của bạn ContentControl trong một bộ Viewbox chỉ quy mô xuống sẽ làm việc này cho bạn:

<Viewbox StretchDirection="DownOnly" Stretch="Uniform"> 
    <ContentControl Content="Some Text"/> 
</Viewbox> 
Các vấn đề liên quan