gpt4 book ai didi

c# - 将动态生成的项目放在按钮周围的圆圈中

转载 作者:行者123 更新时间:2023-12-02 08:02:17 25 4
gpt4 key购买 nike

我正在创建一个 silverlight 应用程序,我必须在其中动态创建按钮。但我需要将它们放在我单击以生成其他按钮的按钮周围的圆圈中(图片 here ,这些按钮应该位于“测试项目”按钮周围的黑线上)

我不知道每次会生成多少个按钮,但我知道每个按钮的大小是静态的。我不太确定该怎么做。目前我的按钮创建如下

                foreach (Item a in itemList)
{
Button newButton = new Button();
newButton.Height = 50;
newButton.Width = 50;
newButton.Content = a.getName();
newButton.Click += new RoutedEventHandler(addedClick);
newButton.HorizontalAlignment = HorizontalAlignment.Left;
newButton.VerticalAlignment = VerticalAlignment.Top;
newButton.Margin = new Thickness(0, 0, 0, 0);
newButton.Style = (Style)Application.Current.Resources["RB"];
buttons.Add(newButton);
}

我最大的问题是我不太确定如何获取“测试项目”按钮的中心点。

编辑:好的,现在我已经有了每个按钮的一组坐标,那么我到底该如何放置它们呢?我不知道如何使用 Canvas 。我尝试设置一个,但它一直像堆栈面板一样运行(没有 .setLeft/.setTop)。

最佳答案

你的意思是圆方程之类的东西:

Double distanceFromCenter = 5;
Double angleInDegrees = 90;
Double angleAsRadians = (angleInDegrees* Math.PI) / 180.0;
Double centerX = 100;
Double centerY = 100;

Double x = centerX + Math.Cos(angleAsRadians) * distanceFromCenter;
Double y = centerY + Math.Sin(angleAsRadians) * distanceFromCenter;

这将为您提供一个距 (centerX, center) distanceFromCenter 个单位、角度 为 90 度的点。请注意,这仅适用于弧度,因此我们必须转换为弧度。

关于c# - 将动态生成的项目放在按钮周围的圆圈中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16814757/

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