gpt4 book ai didi

c# - 如何在 Silverlight 网格上放置椭圆?

转载 作者:行者123 更新时间:2023-11-30 17:24:35 25 4
gpt4 key购买 nike

我正在创建一个 silverlight 应用程序,它允许您在屏幕上的两个位置单击并绘制一个椭圆,其长轴在单击位置开始和结束。可点击区域是一个 Silverlight Grid 控件。目前:

当你第一次点击时,我是:

  1. 在点击时放置一个标记点。
  2. 创建一个椭圆并将其作为父对象到网格。
  3. 创建和设置椭圆上的 AngleTransform。

当你移动鼠标时,我在:

  1. 计算到的距离第一个点击点。
  2. 将椭圆的宽度设置为这个长度。
  3. 计算一条线的角度点击点和网格的X 轴。
  4. 将 Ellipse 的 AngleTransform Angle 设置为此角度。

到目前为止,还不错。显示椭圆,其长度和旋转角度随鼠标移动。

但是,椭圆的长轴偏离了点击点。如何定位椭圆,使其长轴从点击点开始到当前鼠标位置结束?

最佳答案

结果是:

  • 不要使用 System.Windows.Shapes.Ellipse。而是使用 System.Windows.Shapes.Path 并在其中嵌入 EllipseGeometry

  • 同时将 Path.RenderTransform 设置为 RotateTransform

  • 不要在 Path 上设置 WidthHeightStretch。而是设置 EllipseGeometryCenterRadiusXRadiusY

  • 最后,将 RotateTransform.Angle 设置为 Ellipse 长轴和 X 轴(ArcTan 长轴斜率)。同时将 RotateTransform.CenterXCenterY 设置为 EllipseGeometry Center

关于c# - 如何在 Silverlight 网格上放置椭圆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/774345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com