2

この質問で述べたように、私ButtonはWPFで開発しているスタイルを持っています。このスタイルでやりたいもう1つのことは、少しだけ縮小して、クリックされたときにクリックされているように見せることです。現在、変換コードは次のようになっています。Button

<Trigger Property="IsPressed" Value="True">
    <Setter Property="RenderTransform">
        <Setter.Value>
            <TransformGroup>
                <ScaleTransform ScaleX="0.98" ScaleY="0.98"/>
                <SkewTransform AngleX="0" AngleY="0"/>
                <RotateTransform Angle="0"/>
                <TranslateTransform X="0" Y="0"/>
            </TransformGroup>
        </Setter.Value>
    </Setter>
    <Setter Property="Button.BitmapEffect">
        <Setter.Value>
            <OuterGlowBitmapEffect GlowColor="Green" GlowSize="10"></OuterGlowBitmapEffect>
        </Setter.Value>                                
    </Setter>
</Trigger>

だから、それはエキサイティングです。問題は、ボタンがある領域の左上に 関連付けられているScaleTransformスケールです(つまり、ボタンの0,0座標に再スケーリングされているか、少なくともそれが私が想定していることです)。ImageButton

私の理解でTranslateTransformは、それはオブジェクトのサイズに相対的な座標ではなく、ピクセル座標にあります。TranslateTransform0.01、0.01のaを入力するButtonと、各方向に0.01 * sizeof(imagedimension)ピクセルではなく、xとyの両方で0.01ピクセルだけ移動します。Buttonどうすればその相対変換を取得できますか。また、スタイルとしてどのように発生させることができますか。つまり、サイズごとに異なる計算を行う必要はありません。

4

2 に答える 2

2

中心を拡大縮小するには、トリガーを追加できます。

<Setter Property="RenderTransformOrigin" Value=".5,.5"/>
于 2009-04-16T19:01:58.507 に答える
1

ボタンのRenderTransformOriginを0.5x0.5に設定する必要があります。

RenderTransformOrigin="0.5,0.5"
于 2009-04-16T19:00:43.987 に答える