我想将UIElement放在另一个内部元素使用RenderTransform调整其大小的位置。问题是,内部元素没有完全呈现。只有原始适合外部元素的部分才可见。
实施例: 外部元素是一个尺寸为100 x 200像素的网格。内部元素也是尺寸为200 x 200像素的网格。如果不使用变换,则只能看到内部网格的上半部分,因为下部位于外部网格的边界之外。这并不奇怪。
如果RenderTransform以0.5比例应用于内部网格,则实际大小应为100 x 100像素。但只有100 x 50像素的上半部分是黎明。看起来下半部分被忽略,因为在应用变换之前它是不可见的。这没有多大意义:当我使用转换来缩放更大的元素以适应更小的元素时,我希望整个元素可见。
<Grid Background="Green" Width="200" Height="100">
<Grid Background="Yellow" Width="200" Height="200">
<Grid.RenderTransform>
<CompositeTransform ScaleX="0.5" ScaleY="0.5"/>
</Grid.RenderTransform>
</Grid>
</Grid>
如何解决这个问题?
答案 0 :(得分:1)
如名称中所述,“RenderTransform
”适用于UIElement
呈现的方式,即如何绘制。我相信在这种情况下你要做的就是使用Viewbox
。 Viewbox
分别呈现内容,然后将其缩放到给定的大小。