我有一个比它需要的位置大的元素。但是当我使用renderTransform缩放它时,元素原来隐藏的部分,保持隐藏。
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Rectangle Fill="Orange" Stroke="Black" StrokeThickness="5" Width="600" Height="500" Margin="20" HorizontalAlignment="Left">
<Rectangle.RenderTransform>
<ScaleTransform ScaleX="0.5" ScaleY="0.5"/>
</Rectangle.RenderTransform>
</Rectangle>
</Grid>
如何实现缩放并获得所有的UIElement ?
说明您在评论中收到的解决方案的示例是:如果你有一个里面有文字的彩色矩形然后旋转90°:
- 使用LayoutTransform,你会得到矩形旋转,里面的文本看起来正常,因为转换是在计算内容 之前应用的
- 使用RenderTransform,你会得到矩形旋转,里面的文本也旋转,因为矩形和文本会在旋转之前生成。
对于您的示例,它给出:
- 使用LayoutTransform,您可以缩放区域,然后计算其可能的内容
- 使用RenderTransform,你计算内容,然后缩放面积和它的内容。