2 Stimmen

Größe eines Formobjekts ändern

In dieser Frage spreche ich von einer Sternform: Pfadobjekt in XAML wiederverwenden )

<Path x:Name="NiceStar" StrokeThickness="10" Stroke="#ff000000" StrokeMiterLimit="1" Data="F1 M 126.578613,11.297852 L 162.373535,83.825684 L 242.412598,95.456055 L 184.495605,151.911133 L 198.167480,231.626953 L 126.578613,193.990234 L 54.988770,231.626953 L 68.661621,151.911133 L 10.744629,95.456055 L 90.783691,83.825684 L 126.578613,11.297852 Z">
    <Path.Fill>
        <RadialGradientBrush MappingMode="Absolute" GradientOrigin="390.395508,448.130371" Center="390.395508,448.130371" RadiusX="113.034821" RadiusY="113.034821">
            <RadialGradientBrush.Transform>
                <MatrixTransform Matrix="1,0,-0,-1,-263.816895,569.592773" />
            </RadialGradientBrush.Transform>
            <GradientStop Offset="0" Color="#ff00ff00"/>
            <GradientStop Offset="1" Color="#ff006736"/>
        </RadialGradientBrush>
    </Path.Fill>
</Path>

Jetzt möchte ich diesen Stern auf eine sehr kleine Größe bringen und in ein Gitter einfügen. Wenn ich dafür eine ScaleTransform verwende, nimmt der Stern genauso viel Größe an wie vor der Größenänderung. Wie kann ich das am besten machen, also die Größe ändern und dafür sorgen, dass der Stern nicht zu viel Platz einnimmt?

2voto

PaulB Punkte 21834

Anstatt zu tun

<Path.RenderTransform>
   <ScaleTransform ScaleX="0.1" ScaleY="0.1"></ScaleTransform>
</Path.RenderTransform>

Versuchen Sie

<Path.LayoutTransform>
   <ScaleTransform ScaleX="0.1" ScaleY="0.1"></ScaleTransform>
</Path.LayoutTransform>

LayoutTransform wendet die Transformationen vor dem Layoutdurchgang an.

HTH

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X