0

是否可以在不缩放内容的情况下应用缩放转换网格的列和行?

我希望每个单元格的内容简单地调整大小以适应单元格而不被缩放(例如文本的字体大小保持不变)。

例如,在下面的 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>
4

1 回答 1

0

使用您正在应用的方法,这是不可能的,因为转换也将应用于所有子控件的呈现。

但是,从代码的外观来看,您希望根据滑块的位置调整网格列的大小。一种更简单的方法是将所有列设置为Width="*"(这将具有每列具有相等宽度的效果),删除您的变换,并将网格的宽度作为一个整体绑定到滑块(您可能需要调整适合您的滑块范围!)。

不过,这会对 RenderTransform 产生不同的影响,因为 RenderTransform 不会影响任何周围的布局,而更改 Width 会。如果这将是一个问题,请发表评论,也许还有另一种解决方案......

于 2012-06-14T12:52:47.727 回答