Tôi đang cố tạo một Siêu kết nối có chứa văn bản với siêu và/hoặc các bảng con. Tôi đã tìm thấy hai cách để làm điều này, và cả hai đều hút.Siêu văn bản/chỉ số trong siêu liên kết trong WPF
Giải pháp # 1: sử dụng Typography.Variants. Điều này mang lại một siêu chữ số tuyệt vời ... cho một số phông chữ.
<StackPanel>
<TextBlock FontFamily="Palatino Linotype" FontSize="30">
<Hyperlink>R<Run Typography.Variants="Superscript">2</Run></Hyperlink>
(Palatino Linotype)
</TextBlock>
<TextBlock FontFamily="Segoe UI" FontSize="30">
<Hyperlink>R<Run Typography.Variants="Superscript">2</Run></Hyperlink>
(Segoe UI)
</TextBlock>
</StackPanel>
http://www.excastle.com/misc/wpf-superscript-fontvariants.png
Trông đẹp trong Palatino Linotype; nhưng đối với các phông chữ không hỗ trợ các biến thể, nó đơn giản bị bỏ qua, không có mô phỏng nào được thực hiện và văn bản có kích thước đầy đủ, ở mức cơ bản, 100% bình thường. Tôi muốn cho phép người dùng cuối của tôi chọn phông chữ họ muốn sử dụng và vẫn có siêu/đăng ký hoạt động.
Giải pháp # 2: sử dụng BaselineAlignment. Điều này làm tăng hoặc giảm văn bản một cách thích hợp, mặc dù không giống như giải pháp # 1, tôi phải giảm kích thước phông chữ theo cách thủ công. Tuy nhiên, nó có hiệu quả cho tất cả các phông chữ. Vấn đề là gạch dưới của Hyperlink.
<TextBlock FontSize="30" FontFamily="Palatino Linotype">
<Hyperlink>
R<Run BaselineAlignment="Superscript" FontSize="12pt">2</Run>
</Hyperlink>
</TextBlock>
http://www.excastle.com/misc/wpf-superscript-baselinealignment.png
Các gạch dưới được nâng lên và hạ xuống cùng với các văn bản, trông khá tồi tệ. Tôi muốn có một gạch chân liên tục, không gián đoạn dưới toàn bộ Hyperlink. (Và trước khi bất kỳ ai đề xuất một Border, tôi cũng muốn Hyperlink có thể word-wrap, với tất cả các từ được gạch dưới, bao gồm cả hàng đầu tiên.)
Có cách nào để làm việc siêu văn bản và subscript trong WPF, trong bất kỳ phông chữ nào, không có vẻ buồn cười khi gạch dưới?