Изменить размер объекта формы - PullRequest
2 голосов
/ 11 мая 2009

В этом вопросе я говорю о форме звезды: Повторное использование объекта пути в XAML )

<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>

Теперь я хочу изменить размер этой звезды до очень маленького размера и поместить ее в сетку. Когда я использую ScaleTransform для этого, звезда приобретает столько же размеров, сколько и до изменения размера. Каков наилучший способ сделать это, изменить размер и убедиться, что звезда не занимает слишком много места?

1 Ответ

2 голосов
/ 11 мая 2009

Вместо того, чтобы делать

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

попробовать

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

LayoutTransform применяет преобразования перед передачей макета.

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...