[英]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.