Не уверен, правильно ли я понимаю ваш вопрос, но чтобы перетащить окно wpf, все, что вам нужно ввести в обработчик события click компонента в форме (или самой форме), это:
this.DragMove();
Нет необходимости реализовывать функцию перетаскивания самостоятельно.
Обновление: маленький пример: создайте окно, поместите в него кнопку. Подключите MouseDown окна и нажмите кнопку как:
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
this.DragMove();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("hey");
}
Работает отлично, вы можете перетащить окно, а кнопка продолжает работать ...