中的翼形字符我試圖在控件中使用Wingdings符號作爲圖形,並試圖使其在文本框(UWP應用程序)中垂直居中。在它周圍放置一個可見的邊框,並且該符號不是垂直居中的事實是顯而易見的,並且毀了我要去的東西。如果可能的話,它可以使我不必進行自定義藝術創作,而且由於Wingdings可以調整大小,因此我的圖形可以輕鬆地重新調整大小。這就是爲什麼我不想手動調整高度,直到它看起來居中。如何垂直居中文本塊xaml/C#/ UWP
大多數Wingdings不是垂直居中,但有時用作圖形,所以我想知道如果這是可行的W /合理的努力。一個光滑的xaml方式來做到這一點是理想的,但字體度量測量,然後文本塊高度調整粘性將是很好的。
這是一個問題的例子。硬盤驅動器符號不在邊界中垂直居中。
<Border BorderBrush="Black" BorderThickness="10" Background="White" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text=";" FontFamily="Wingdings" FontSize="230"/>
</Border>
編輯 - 改變例子來簡化房間和使用宋體硬盤符號,因爲顱骨骨骼&足夠接近垂直居中混淆的問題。驅動符號非常明顯不是垂直居中。即使字體大小發生變化,我的目標也是自動垂直居中。我可以看到XAML可能無法做到這一點,但我想知道是否有一些字體/文本指標查詢存在,我可以用它來做到這一點。
EDIT 2 - 添加圖片(從上面XAML具有相同的問題,因爲所有建議的XAML(S):
感謝Sunteen,你的第一個答案似乎缺少一個VerticalAlignment =「中心」,但既不1,2或3是垂直居中的字符。因爲它不是垂直對稱的,我選擇了一個頭骨和骨頭的壞例子。如果將字符更改爲「µ」,並測量頂部和底部邊界之間的像素到符號,您會發現它不是以上述任何建議中的垂直居中。我不認爲font-char是垂直居中的。舉一個極端的例子來看看「;」,它絕對不是垂直居中。有沒有一種字體/文字指標的方式來做到這一點? – br0therDave
@ br0therDave我測試過「µ」,這三種方法都可以使它居中。如果您仍然遇到問題,請提供您的應用目標版本和測試環境。並提供您通過上面的代碼獲得的屏幕截圖。 –
我給這個問題添加了一張圖片。您可以看到wingdings符號的中心不在文本塊的垂直中心。關於如何讓符號垂直居中的任何想法? – br0therDave