У меня есть приложение WPF, что я удалить пограничные и стандартные элементы управления, выполнив следующие действия:MouseDown событие на новом окне не DragMove MainWindow
WindowStyle="None" AllowsTransparency="True"
Теперь я добавил обработчик MouseDown MouseDown = «Window_MouseDown» и добавил следующий код, чтобы позволить мне переместить мое окно вокруг:
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
try
{
if (e.ChangedButton == MouseButton.Left)
DragMove();
}
catch (Exception ex) { }
}
Но теперь у меня есть UserControl, который я хочу, чтобы изменить размер до полного размера моего приложения, так что для достижения этой цели я создал новое окно, t он такого же размера, как мой MainWindow, и разместил на нем UserControl. Я создаю этот новый окно и установить его родителей, чтобы быть моим основным приложением так:
public MyFullScreenWindow()
{
InitializeComponent();
this.Owner = App.Current.MainWindow;
}
я запускаю это окно следующим образом:
MyFullScreenWindow fullScreen = new MyFullScreenWindow();
fullScreenVideo.ShowDialog();
Моя проблема заключается в том, что я хочу, чтобы все-таки переместить все мое приложение когда пользователь нажимает и перемещает это новое окно. Для достижения этой цели я добавил событие в MyFullScreenWindow:
public partial class MyFullScreenWindow: Window
{
static public event EventHandler MouseDownEvent;
public MyFullScreenWindow()
{
InitializeComponent();
this.Owner = App.Current.MainWindow;
}
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
if (MouseDownEvent != null)
{
MouseDownEvent(sender, e);
}
}
}
И я обрабатывать это событие в моей MainWindow так:
MyFullScreenWindow.MouseDownEvent += new EventHandler(MyFullScreenMouseDownHandler);
private void MyFullScreenMouseDownHandler(object sender, EventArgs e)
{
DragMove();
}
Но когда я нажимаю и перетащить я вижу, что событие отстреливается но все мое приложение не движется так, как должно. Почему это??
Спасибо за ответ. См. Эту ссылку для контекста: http://stackoverflow.com/questions/20663921/make-a-usercontrol-on-a-page-the-same-size-as-the-mainwindow-in-wpf Когда я пытаюсь Ваше решение, и когда я перемещаю мышь, он действительно перемещает мой MainWindow в фоновом режиме, но новое полноэкранное окно остается в одном месте. Я хочу переместить их вместе (так что мое приложение выглядит как одно) # –
Я сделал что-то похожее. Я не понимаю, почему вам нужны эти DragMoves и т. Д. Если окно полноэкранное, у него будут флаги NoResize & Maximized, что означает, что вы не можете перемещать полноэкранный режим. Вот как работают все экраны. –
Помните, что вы всегда можете создать свой собственный DragMove(). Все, что вам нужно сделать: захватить мышь и координаты на MouseDownEvent. В MouseMoveEvent вы управляете окнами свойств Left & Top, Left + = mouseClickOrigin.X-curentMouseOrigin.X ;. Вам нужно будет освободить захват мыши на MouseReleasedEvent –