'Здесь вы можете использовать layouttransform или rendertransform
извините за мой плохой английский ..
например:
<UserControl
x:Class="Setup.WPF.Gauges.SwitchOff_On_View"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:cal="http://www.caliburnproject.org"
xmlns:ikriv="clr-namespace:Setup.WPF.Converters"
mc:Ignorable="d" d:DesignHeight="150" d:DesignWidth="70"
x:Name="usercontrol" Height="150" Width="70" RenderTransformOrigin="0.5,0.5"
VerticalAlignment = "Top" HorizontalAlignment = "Left" Focusable="False" ClipToBounds="True" ToolTip="{Binding ToolTip}"
cal:Message.Attach="[Event MouseEnter] = [Action MouseEnter($eventArgs)]">
<UserControl.LayoutTransform>
<TransformGroup>
<RotateTransform x:Name="rotation" Angle="{Binding angle}"/>
<ScaleTransform x:Name="scale" ScaleX="{Binding scaleX}" ScaleY="{Binding ElementName=scale, Path=ScaleX}"/>
</TransformGroup>
</UserControl.LayoutTransform>
<Grid>
:
:
:
</Grid>
</UserControl>
значение RenderTransformOrigin = "0.5,Значение 0,5 важно, потому что вы уведомляете, где находится ваш центр.
Сначала вы должны рассчитать коэффициент масштабирования, например,
, если вы хотите, чтобы Размер (ширина) = 100 пикселей (ширина при запуске),Вы вычисляете ScaleX из размера ширины известного элемента, значения ширины изображения или пользовательского контроля
ScaleX = Size / sizeelement
Вы связываете Scale в ScaleTranform (rotatetransform не требуется)
вы можете сделать это в C # (код сзади), так что
regards