Регулярное выражение для удаления метаданных

Я пытаюсь создать приложение с использованием некоторой Entity Framework и некоторых старых наборов данных, но у меня есть только динамическая строка подключения, использующая сущность, и мне нужно удалить метаданные во время выполнения, чтобы создать строку подключения к моей базе данных. Кто-нибудь знает способ удалить все метаданные из Entity Framework Connection

У меня есть это

metadata=res://*/Models.SiteModel.csdl|res://*/Models.SiteModel.ssdl|res://*/Models.SiteModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=(local);Initial Catalog=MyDB;Persist Security Info=True;User ID=sa;Password=P@ssw0rd;MultipleActiveResultSets=True"

, и мне нужно только это: Он отлично работает только с одним монитором, но с несколькими мониторами окно смещается. Вот ...

У меня есть Datagrid, и я хочу знать положение центра данных, чтобы наложить его на окно.
Он отлично работает только с одним монитором, но с несколькими мониторами окно смещено.
Вот код:

Point point = cell.PointToScreen(new Point(0, 0));
...
Window myWindow = new Window();
myWindow.Top = point.Y;
myWindow.Left = point.X;

Кто-нибудь имеет опыт позиционирования на нескольких мониторах?

РЕДАКТИРОВАТЬ:
Я провел следующий тест:

public MyWindow()
{
    ...
    this.LocationChanged += MyWindow_LocationChanged;
}

void MyWindow_LocationChanged(object sender, EventArgs e)
{
    Console.WriteLine(this.Top + " <--> " + this.PointToScreen(new Point(0, 0)).Y);
}

Результаты:
- Одномонтажный: 0 30; 20 50; 100 130
==> Всегда разница 30 (может быть вызвана строкой заголовка)
- Двойной монитор: 0 30; 20 55; 100 153
==> При 0,0 разность 30. Но чем больше я сдвинул окно от 0,0. чем больше становится разница, но она должна оставаться неизменной. Очень странно!

EDIT2:
Вот мое решение, спасибо CodeNaked за подсказку:

Point point = cell.PointToScreen(new Point(0, 0));
...
Window myWindow = new Window();
PresentationSource source = PresentationSource.FromVisual(this);
myWindow.Top = point.Y / source.CompositionTarget.TransformToDevice.M22;
myWindow.Left = point.X / source.CompositionTarget.TransformToDevice.M11;

7
задан Community 23 May 2017 в 11:59
поделиться