none
wpf控件经过Transform后内部包含控件大小发生改变 RRS feed

  • 问题

  • <Grid Name="editGrid">
            <Grid.RowDefinitions>
                <RowDefinition Name="row1" Height="10"/>
                <RowDefinition />
                <RowDefinition Name="row2" Height="10"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Name="column1" Width="10"/>
                <ColumnDefinition />
                <ColumnDefinition Name="column2" Width="10"/>
            </Grid.ColumnDefinitions>

           <Image Name="backgroundImage" Grid.ColumnSpan="3" Grid.RowSpan="3" Source="{Binding EditImageSource}" Stretch="Fill" />
            <Image  Margin="-10, -10, 0, 0"/>
            <Image Name="stretchImage"  Grid.Row="2" Grid.Column="2" Source="Images/clock256.png" Width="20" Height="20" Margin="0, 0, -10,-10" />
    </Grid>

    经过以下矩阵变换

                    RotateTransform rotateTransform = new RotateTransform(angle, originPt.X, originPt.Y);
                    ScaleTransform scaleTransform = new ScaleTransform(scale, scale, originPt.X, originPt.Y);
                    TransformGroup tranformGroup = new TransformGroup();
                    tranformGroup.Children.Add(rotateTransform);
                    tranformGroup.Children.Add(scaleTransform);
                    editGrid.RenderTransform = tranformGroup;

    editGrid内部的3个Image大小会随scale改变,而我需要的是editGrid随RenderTransform改变,但内部的Image固定大小,该如何做?

    2013年10月17日 2:41

答案

  • 为什么editGrid随RenderTransform改变,但内部image大小不变?TransformGroup 就是存储需要的变换,editGrid中的控件都回随之改变,如果你真的需要这么做,你可以把这三个图片控件放在单独一个Grid里,做另外的变换,editGrid随RenderTransform改变
    2013年10月18日 13:30