獨立網格劃分爲多個部分是這樣的:WPF - 中心標籤在網格單元格時,字體大小改變
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
</Grid>
現在創建其中心在單元格中的內容的標籤。
<Label Grid.Row="0" Grid.Column="0" Content="Hello World" HorizontalAlignment="Center" VerticalAlignment="Center"></Label>
注意到它似乎是居中。
現在,標籤的字體更改爲任何比12大的越大越好,例如24
<Label FontSize="24" Grid.Row="0" Grid.Column="0" Content="Hello World" HorizontalAlignment="Center" VerticalAlignment="Center"></Label>
看到文本不再居中。
如何將文本居中放入單元格中,同時考慮文本的大小?我不想爲每個工作的人定義一個保證金,但這需要反覆試驗,而且效率不高。
我正在尋找理想的純WPF/XAML解決方案,內置或定製。雖然在我看來,這個功能可能需要一個轉換器和一個自定義風格來定位一個不幸的標籤,因爲對於如此簡單的事情來說,這似乎是一個相當大的努力。
有沒有簡單的解決方案呢?
恐怕你的問題是不可重現的:使用相同的XAML,文本保持居中(在左上角的單元格中),而不管字體大小...也許在你沒有列出的XAML中有其他的東西。嘗試包括一個完整的XAML列表,該列表重現了問題...注意'現在創建一個標籤,將網格中的內容居中。您的XAML絕不會將標籤居中在網格中,它會將其居中放置在左上方的單元格中。 –
實際上你是對的,它似乎在我提供的文本居中的例子中。我發現我的問題實際上是這樣的,如果這是合理的,那麼行的高度不夠大,無法正確居中。 如果您要採用相同的示例,並將RowDefinition Height設置爲較小的值,以使字體可見。你會看到文本不再居中,但實際上在單元格中降低了。試試這個值。顯然在這種情況下,標籤可以垂直居中在網格單元中,但事實並非如此。 我的意思是不是細胞,會編輯。 –
Jetompki