是否可以在不缩放内容的情况下对Grid的列和行应用缩放变换?
我希望每个单元格的内容只需调整大小以适合单元格而不进行缩放(例如文本的字体大小保持不变)。
例如,在下面的XAML中,我希望按钮可以调整大小而不是缩放:
<Grid Name="grid1" RenderTransformOrigin="0.5, 0.5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300" />
<ColumnDefinition Width="300" />
<ColumnDefinition Width="300" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="80"/>
<RowDefinition Height="80"/>
</Grid.RowDefinitions>
<Grid.RenderTransform>
<ScaleTransform ScaleX="{Binding Value, ElementName=slider1 }" ScaleY="{Binding Value, ElementName=slider1 }"
/>
</Grid.RenderTransform>
<Button Content="Button3" Margin="6" Name="button3" />
<Button Content="Button4" Grid.Column="1" Margin="6" Name="button4" />
<Button Content="Button5" Grid.Column="2" Margin="6" Name="button5" />
<Button Content="Button6" Grid.Column="0" Grid.Row="1" Margin="6" Name="button6" />
</Grid>
答案 0 :(得分:0)
使用您正在应用的方法,这是不可能的,因为转换也将应用于所有子控件的渲染。
但是,根据代码的外观,您希望根据滑块的位置调整网格列的大小。一种更简单的方法是将所有列设置为Width="*"
(这将使每列具有相等宽度的效果),删除变换,并将网格的宽度作为一个整体绑定到滑块(您可能需要调整滑块的范围以适应!)。
这会对RenderTransform产生不同的影响,因为RenderTransform不会影响任何周围的布局,并且会更改Width。发表评论,如果这将是一个问题,也许还有另一种解决方案......