ResourceDictionary может иметь код позади так же, как Windows и т. Д., Поэтому вы можете добавить обработчик событий и вызвать оттуда DragMove
Для настройки кода требуется пара шагов.
- Если ваш ResourceDictionary называется
MetroStyleResourceDictionary.xaml
, вы добавляете новый файл в Visual Studio в ту же папку с именем MetroStyleResourceDictionary.xaml.cs
Код файла должен выглядеть следующим образом
public partial class MetroStyleResourceDictionary
{
//...
}
После этого вам нужно добавить атрибут x:Class
в файл Xaml
<ResourceDictionary x:Class="YourNamespace.MetroStyleResourceDictionary"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!--...-->
</ResourceDictionary>
Теперь вы можете добавить обработчик события вdragRectangle для MouseLeftButtonDown
.Вам также понадобится овладеть Window
, так что привязка к Tag
может быть хорошей идеей
<Rectangle Name="dragRectangle"
MouseLeftButtonDown="dragRectangle_MouseLeftButtonDown"
Tag="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}}"
.../>
И, наконец, вы можете добавить обработчик событий в код файла, который будетвыглядеть так
public partial class MetroStyleResourceDictionary
{
void dragRectangle_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
Rectangle dragRectangle = sender as Rectangle;
Window window = dragRectangle.Tag as Window;
if (window != null)
{
window.DragMove();
}
}
}