1

ウィンドウの境界をレジストリに保存したいので、次のコードを使用します。

dialogView.Save("WindowPosition", this.DesktopBounds.ToString());

dialogViewは、それらを保存するパスです。すべてを保存します。例:

{X=54,Y=153,Width=723,Height=555}

しかし、レジストリから取得できるタイプは文字列の例である可能性があるため、それらを取得するための最良の方法はどのようになりますか。

dialogView.Load("WindowPosition",string.Empty,out position);

しかし、文字列を長方形に変換し、設定をウィンドウに初期化する方法がわかりません。誰かが何かを提案できますか?

4

3 に答える 3

11

RectangeConverterを試してください:

RectangleConverter r = new RectangleConverter();

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

var rectangle = (Rectangle)r.ConvertFromString(rectangleAsString);
于 2012-05-08T11:38:50.713 に答える
3

正規表現パターンを使用します。

{X=(\d+),\s*Y=(\d+),\s*Width=(\d+),Height=(\d+)}

こちらのデモを ご覧ください

Match groups:
1.  54
2.  153
3.  723
4.  555
于 2012-05-08T11:34:19.693 に答える
0
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));
于 2012-05-08T11:33:23.627 に答える