Если Вы идете вниз сменным путем, я склонен предпочитать подрывной по subclipse.
См. этот вопрос .
Обычно для этого используется метод Window.DragMove .
В нашем приложении у нас есть Windows с WindowStyle, установленным на «none», мы реализовали функциональность для перетаскивания Window, но только из заголовка, а не из любой точки в Window. Мы сделали это, добавив границу в качестве заголовка, а затем добавив большой палец, чтобы заполнить всю границу. Затем мы обрабатываем метод DragDelta на Thumb в коде программной части для окна.
<Border
Name="headerBorder"
Width="Auto"
Height="50"
VerticalAlignment="Top"
CornerRadius="5,5,0,0"
DockPanel.Dock="Top"
Background="{StaticResource BackgroundBrush}"
BorderThickness="1,1,1,1"
BorderBrush="{StaticResource BorderBrush}">
<Grid>
<Thumb
x:Name="headerThumb"
Opacity="0"
Background="{x:Null}"
Foreground="{x:Null}"
DragDelta="headerThumb_DragDelta"/>
</Grid>
</Border>
Затем в коде программной части у нас есть следующий обработчик событий ...
private void headerThumb_DragDelta(object sender, DragDeltaEventArgs e)
{
Left = Left + e.HorizontalChange;
Top = Top + e.VerticalChange;
}
Я не знаю '
Я использую главное окно для хранения страниц (создание программы стиля навигации), и в коде позади моего главного окна я вставил это ..
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
base.OnMouseLeftButtonDown(e);
// Begin dragging the window
this.DragMove();
}
... и это работает как шарм. Это с windowstyle = none. Это приятно в том смысле, что вы можете щелкнуть в любом месте приложения и переместить его, а не ограничиваться только верхней панелью.