c#中改变结构体中单个元素的一种更优雅的方式

本文关键字:一种 方式 结构体 改变 单个 元素 | 更新日期: 2023-09-27 18:13:05

是否有更优雅的方法来更改视图中的单个元素?框架结构在Xamarin/c#不使用以下模式之一?

var frame = View.Frame;
frame.Y = 123;
View.Frame = frame;

View.Frame = new RectangleF(View.Frame.X, 123, View.Frame.Width, View.Frame.Height);

像这样简单地改变元素:View.Frame.Y = 123;没有任何影响。只有当整个Frame结构被重新赋值时,它才会生效。

c#中改变结构体中单个元素的一种更优雅的方式

我花了几分钟,试图想出一些东西,但因为框架是一个结构体,它看起来没有一个更优雅的方式:

MonoTouch:如何在运行时更改控件's位置?

您可以做的一件事是创建一个静态实用程序类,像这样,您可以重用:

public static class FrameUtil{
     public RectangleF UpdateX(RectangleF frame, float newX){
          var tempFrame = frame;
          tempFrame.x = newX;
          return tempFrame;
     }
}