[英]Limit rotated TextBlock size
在旋轉TextBlock之后,我試圖將第一列的高度限制為與第二列的高度匹配。
我有以下XAML:
<Viewbox>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock
Grid.Column='1'
Text='Ubuntu'
FontFamily='Ubuntu'
FontSize='36' />
<TextBlock
Grid.Column='0'
Text='Linux'
FontFamily='Ubuntu'
FontSize='36'>
<TextBlock.LayoutTransform>
<RotateTransform
Angle='-90' />
</TextBlock.LayoutTransform>
</TextBlock>
</Grid>
</Viewbox>
這將呈現以下內容:
但是,我正在嘗試獲取此輸出,以使左列的高度適應於第二列的高度:
您是否知道如何僅使用聲明性XAML做到這一點? 就是 沒有綁定到高處或代碼隱藏。 我也不想指定控件的任何邊距。
謝謝。
在代碼中進行少量修改可以為您提供所需的內容:
第一:您更新的代碼
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock x:Name="UbuntuBox"
Grid.Column='1'
Text='Ubuntu'
FontFamily='Ubuntu'
FontSize='36' />
<TextBlock Width="{Binding ElementName=UbuntuBox, Path=Height}"
Grid.Column='0'
Text='Linux'
FontFamily='Ubuntu'
>
<TextBlock.LayoutTransform>
<RotateTransform
Angle='-90' />
</TextBlock.LayoutTransform>
</TextBlock>
</Grid>
第二:說明
TextBlock
必須鏈接到Ubuntu TextBlock
。 在這種情況下,其Width
必須與Ubuntu的Height
相同,因此我添加了以下內容: Width="{Binding ElementName=UbuntuBox, Path=Height}"
FontSize
的TextBlock
。 刪除它會使它保持默認狀態,然后您可以根據需要使用它 這就是您所需要的! 那里沒有硬編碼添加的東西=)
這是我能想到的最好的方法。 不好的部分是硬編碼的行定義,但是因為您已經在視圖框內有了根網格及其相對的根網格,所以它應該不是一個大問題。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="36"/>
</Grid.RowDefinitions>
<TextBlock
Grid.Column='1'
Text='Ubuntu'
FontFamily='Ubuntu'
FontSize='36' />
<Viewbox Grid.Column='0'>
<TextBlock
Text='Linux'
FontFamily='Ubuntu'
FontSize='36'>
<TextBlock.LayoutTransform>
<RotateTransform
Angle='-90' />
</TextBlock.LayoutTransform>
</TextBlock>
</Viewbox>
</Grid>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.