0

行動に問題がありRotateTransformます。
内にユーザー コントロールがあり、Grid-135 度回転していますが、その形状を の限界まで移動すると、Grid回転がないように見えて消え始めます。どうすればこれを修正できますか?

代替テキスト http://img522.imageshack.us/img522/6241/cenask.jpg

4

2 に答える 2

1

UserControlあなたの説明から判断すると、は の境界によって切り取られていると思いますGrid。これは、予想されるデフォルトの動作です。ClipToBoundsのプロパティを設定して、Grid外部で実行されるコンテンツがクリップされないようにすることができます。

たとえば、次のことを考慮してください。

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="50"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="50"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="50"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="50"/>
        </Grid.ColumnDefinitions>

        <Grid Grid.Row="1" Grid.Column="1" ClipToBounds="True" Background="Blue">
            <Label Content="Testing a long label to see what happens" Background="Gray" RenderTransformOrigin=".5,.5">
                <Label.RenderTransform>
                    <RotateTransform Angle="-135"/>
                </Label.RenderTransform>
            </Label>
        </Grid>
    </Grid>
</Window>

これにより、次の結果が得られます。

代替テキスト http://img514.imageshack.us/img514/8485/screenshotmf.png

に変更ClipToBoundsすると、次のようになりtrueます。

代替テキスト http://img36.imageshack.us/img36/2682/screenshottz.png

于 2009-09-08T12:22:19.477 に答える
0

回転が適用されている場所に問題がある可能性があります。

RotateTransformには2つのプロパティ(CenterX、CenterY)があり、回転するポイントを決定します。

MSDNから引用します

RotateTransformのCenterXプロパティとCenterYプロパティは、オブジェクトが回転するポイントを指定します。この中心点は、変換される要素の座標空間で表されます。デフォルトでは、回転は(0,0)に適用されます。これは、変換するオブジェクトの左上隅です。

次の例では、ポリラインオブジェクトをポイント(25,50)を中心に時計回りに45度回転します。

オブジェクトの左上を中心に回転している可能性があります。それが下にあるキャンバスの左上に設定されている場合は、キャンバススペースの外側で回転します。

お役に立てれば

于 2009-09-26T16:10:46.440 に答える