C# 从字符串中获取矩形边界

C# 从字符串中获取矩形边界,c#,.net,string,C#,.net,String,我想在注册表中保存窗口的边界,为此我使用以下代码: dialogView.Save("WindowPosition", this.DesktopBounds.ToString()); dialogView是我要保存它们的路径。它保存了一切,好吗 例如: 但是如何获得它们是最好的方法,因为我可以从注册表中获得 可以是字符串 例如: 但我不知道如何将字符串转换为矩形,将初始设置转换为窗口?有人能提出一些建议吗?使用正则表达式模式: var matches = Regex.Match("{X=54,

我想在注册表中保存窗口的边界,为此我使用以下代码:

dialogView.Save("WindowPosition", this.DesktopBounds.ToString());
dialogView是我要保存它们的路径。它保存了一切,好吗 例如:

但是如何获得它们是最好的方法,因为我可以从注册表中获得 可以是字符串 例如:

但我不知道如何将字符串转换为矩形,将初始设置转换为窗口?有人能提出一些建议吗?

使用正则表达式模式:

var matches = Regex.Match("{X=54,Y=153,Width=723,Height=555}",
                           @"\D*(\d+)\D*(\d+)\D*(\d+)\D*(\d+)");

var rect = new Rectangle(int.Parse(matches.Groups[1].Value),
                         int.Parse(matches.Groups[2].Value),
                         int.Parse(matches.Groups[3].Value),
                         int.Parse(matches.Groups[4].Value));
{X=(\d+),\s*Y=(\d+),\s*Width=(\d+),Height=(\d+)}
请看演示

使用正则表达式模式:

{X=(\d+),\s*Y=(\d+),\s*Width=(\d+),Height=(\d+)}
请看演示

试试看:

试试看:

{X=(\d+),\s*Y=(\d+),\s*Width=(\d+),Height=(\d+)}
Match groups:
1.  54
2.  153
3.  723
4.  555
RectangleConverter r = new RectangleConverter();

var rectangleAsString= r.ConvertToString(this.DesktopBounds);

var rectangle = (Rectangle)r.ConvertFromString(rectangleAsString);