我试图使一个定时器控件与一个“点”指标移动周围的一个圆圈(Link to image)。
如何确定围绕哪个点旋转指示器?(公式是什么?)
通过反复试验,我发现正确的点似乎是(10,202.5),但我看不到任何与画布和/或指示器的大小/位置/strokethickness相关的“模式”。
<UserControl
x:Class="TestApp.Clock"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Name="clock"
Width="512"
Height="512"
Background="White">
<Canvas Width="512" Height="512">
<Ellipse
Canvas.Left="56"
Canvas.Top="56"
Width="400"
Height="400"
Opacity=".15"
Stroke="Aqua"
StrokeThickness="10" />
<Ellipse
Name="DotIndicator"
Canvas.Left="248"
Canvas.Top="52"
Width="16"
Height="16"
Stroke="Aqua"
StrokeThickness="10">
<Ellipse.RenderTransform>
<RotateTransform Angle="{Binding Angle, ElementName=clock}" CenterX="10" CenterY="202.5" />
</Ellipse.RenderTransform>
</Ellipse>
</Canvas>
</UserControl>
字符串
1条答案
按热度按时间8i9zcol21#
最好将两个Path元素与具有公共坐标原点的EllipseGeometries一起使用。“指示器”EllipseGeometry的
Center
偏移量等于外部EllipseGeometry的半径,因此您只能简单地围绕坐标原点旋转它。字符串
作为Path的
RenderTransform
的替代,您还可以设置EllipseGeometry的Transform
属性:型