private async void CameraPlus_ExportButton_Click(object sender, RoutedEventArgs e) { await Globals.Client?.SendCommandWaitAsync(new PipeCommands.ExportCameraPlus { }, r => { var d = (PipeCommands.ReturnExportCameraPlus)r; Dispatcher.Invoke(() => { Globals.LoadCommonSettings(); var ofd = new OpenFileDialog(); ofd.Filter = "cameraplus.cfg|cameraplus.cfg"; ofd.Title = "Select cameraplus.cfg"; ofd.FileName = "cameraplus.cfg"; ofd.InitialDirectory = Globals.ExistDirectoryOrNull(Globals.CurrentCommonSettingsWPF.CurrentPathOnCameraPlusFileDialog); if (ofd.ShowDialog() == true) { var culture = System.Globalization.CultureInfo.InvariantCulture; var format = culture.NumberFormat; var lines = File.ReadAllLines(ofd.FileName); for (int i = 0; i < lines.Length; i++) { if (lines[i].StartsWith("posx")) { lines[i] = $"posx=" + d.x.ToString("G", format); } if (lines[i].StartsWith("posy")) { lines[i] = $"posy=" + d.y.ToString("G", format); } if (lines[i].StartsWith("posz")) { lines[i] = $"posz=" + d.z.ToString("G", format); } if (lines[i].StartsWith("angx")) { lines[i] = $"angx=" + d.rx.ToString("G", format); } if (lines[i].StartsWith("angy")) { lines[i] = $"angy=" + d.ry.ToString("G", format); } if (lines[i].StartsWith("angz")) { lines[i] = $"angz=" + d.rz.ToString("G", format); } if (lines[i].StartsWith("fov")) { lines[i] = $"fov=" + d.fov.ToString("G", format); } } File.WriteAllLines(ofd.FileName, lines); if (Globals.CurrentCommonSettingsWPF.CurrentPathOnCameraPlusFileDialog != System.IO.Path.GetDirectoryName(ofd.FileName)) { Globals.CurrentCommonSettingsWPF.CurrentPathOnCameraPlusFileDialog = System.IO.Path.GetDirectoryName(ofd.FileName); Globals.SaveCommonSettings(); } } }); }); }